Azure Active Directory 令牌缓存 C# 控制台应用程序
Azure Active Directory Token Cache C# Console Application
我正在使用控制台应用程序探索 Active Directory 身份验证库 (ADAL)。据说一旦使用 oauth 检索到令牌,检索到的令牌就会缓存相同的资源名称、客户端 ID 和先前登录的用户。虽然这在 Win8.1 本机应用程序中工作正常,但我无法设法使其与控制台应用程序一起工作。
下面是我用来获取令牌的代码:
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版本)和Console App(移动UI版本)提示时,提示界面(登录UI)有点不同,这是正常的吗?
任何人都可以指出为什么它不能在正常的控制台应用程序中工作吗?
据我所知,令牌存储在 Local/Session 存储(网络浏览器)中,控制台应用程序无法以这种方式存储令牌(当然是本地的)。也许有解决方法或类似的方法。微软的 UWP 可以依赖许多技术,比如 JS,如果你是这种情况,它将使用类似浏览器的技术,你可以在其中保存你的令牌。
Tokencache 仅在 .net 应用程序的内存中,因为没有已知的默认写入位置。 Cache 为您提供委托挂钩,以将数据读取和写入您选择的存储。
在 win 8.1 本机应用程序中,我假设你的意思是商店应用程序,缓存持久保存在应用程序的存储中,该存储被沙盒化并受到其他进程的保护。
我正在使用控制台应用程序探索 Active Directory 身份验证库 (ADAL)。据说一旦使用 oauth 检索到令牌,检索到的令牌就会缓存相同的资源名称、客户端 ID 和先前登录的用户。虽然这在 Win8.1 本机应用程序中工作正常,但我无法设法使其与控制台应用程序一起工作。
下面是我用来获取令牌的代码:
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版本)和Console App(移动UI版本)提示时,提示界面(登录UI)有点不同,这是正常的吗?
任何人都可以指出为什么它不能在正常的控制台应用程序中工作吗?
据我所知,令牌存储在 Local/Session 存储(网络浏览器)中,控制台应用程序无法以这种方式存储令牌(当然是本地的)。也许有解决方法或类似的方法。微软的 UWP 可以依赖许多技术,比如 JS,如果你是这种情况,它将使用类似浏览器的技术,你可以在其中保存你的令牌。
Tokencache 仅在 .net 应用程序的内存中,因为没有已知的默认写入位置。 Cache 为您提供委托挂钩,以将数据读取和写入您选择的存储。 在 win 8.1 本机应用程序中,我假设你的意思是商店应用程序,缓存持久保存在应用程序的存储中,该存储被沙盒化并受到其他进程的保护。