【问题标题】:Azure Active Directory Token Cache C# Console ApplicationAzure Active Directory 令牌缓存 C# 控制台应用程序
【发布时间】:2016-10-13 20:09:57
【问题描述】:

我正在使用控制台应用程序探索 Active Directory 身份验证库 (ADAL)。据说一旦使用 oauth 检索到令牌,检索到的令牌将被缓存为相同的资源名称、客户端 ID 和先前登录的用户。虽然这在 Win8.1 Native 应用程序中运行良好,但我无法使其与控制台应用程序一起工作。

以下是我用来获取令牌的代码:

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

假设 PromptBehavior.Auto 应该只在 Azure 上没有缓存此类令牌时才提示用户,正如我所说,这在 Win8.1 本机应用程序中完美运行。另外我注意到Win8.1(桌面版)和Console App(手机版)提示时提示界面(登录UI)有点不同,这正常吗?

能否请任何人指出为什么它在正常的控制台应用程序中不起作用?

【问题讨论】:

    标签: c# azure oauth adal


    【解决方案1】:

    Tokencache 仅在 .net 应用程序的内存中,因为没有已知的默认写入位置。缓存为您提供了委托挂钩,以便您将数据读取和写入您选择的存储。 在 win 8.1 本机应用程序中,我假设您的意思是存储应用程序,缓存被持久保存在应用程序的存储中,该存储被沙盒化并受到其他进程的保护。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-25
        • 1970-01-01
        • 1970-01-01
        • 2020-01-08
        • 1970-01-01
        • 2018-11-30
        相关资源
        最近更新 更多