2016-10-13 181 views
1

我正在使用控制台应用程序探索Active Directory身份验证库(ADAL)。据说一旦使用oauth检索标记,检索到的标记将被缓存为相同的资源名称,并且之前已登录。虽然这在Win8.1 Native应用程序中正常工作,但我无法设法使其与控制台应用程序一起工作。Azure Active Directory令牌缓存C#控制台应用程序

下面是我使用来获取令牌代码:

AuthenticationContext authContext = new AuthenticationContext("https://login.microsoftonline.com/{tenantGUID}/", false); 
var result = authContext.AcquireToken(APPResourceName, clientGUID, redirectUri, PromptBehavior.Auto); 

按说PromptBehavior.Auto应该只有当没有这样的令牌在Azure缓存提示用户,和我说这个作品完美地在Win8.1本机应用程序。此外,我注意到当Native Win8.1(桌面UI版本)和控制台应用程序(移动UI版本)提示时,提示界面(登录UI)有点不同,这是正常的吗?

任何人都可以请任何人指出为什么它不能在一个正常的控制台应用程序中工作?

回答

0

Tokencache仅存在于.net应用程序的内存中,因为没有已知的默认写入位置。高速缓存提供委托挂钩让您读取和写入数据到您选择的存储。 在win 8.1本地应用程序中,我假设你指的是商店应用程序,缓存被保存在应用程序的存储中,该存储被沙盒化并受到其他进程的保护。

0

据我所知,令牌存储在本地/会话存储(Web浏览器)中,控制台应用程序无法以这种方式存储令牌(本质上是当然的)。也许有一个解决方法或类似的东西。微软的UWP可以依赖很多技术,比如JS,如果这是你的情况,它会使用类似技术的浏览器来保存你的令牌。

相关问题