【问题标题】:Force ADAL to save persistent cookies强制 ADAL 保存持久性 cookie
【发布时间】:2017-09-15 16:31:55
【问题描述】:

来自 xamarin 博客文章的直接流程效果很好 https://blog.xamarin.com/put-adal-xamarin-forms/

我们的应用需要 AD 授权才能获取访问令牌以与我们的 API 进行通信。此外,它还包含带有共享点站点的 webview。所以我们应该在用户通过 ADAL 登录后实现 SSO 到共享点。 现在 ADAL 显示带有 login.microsoftonline.com/{tenantId}/oauth2/ url 的 webview,它不包含“让我登录”按钮,因此它只保存会话 cookie。当用户使用 sharepoint 站点打开 webview 时效果很好。然而,在关闭应用程序后,他必须再次登录,因为只有会话 cookie。

有谁知道如何强制 login.microsoftonline.com 保存持久性 cookie 或显示“让我登录”按钮?

【问题讨论】:

    标签: adal


    【解决方案1】:

    使用 ADAL 3,您可以使用令牌缓存(本地文件)并在创建 AuthenticationContext 时将其作为参数传入。然后,您调用 AcquireTokenSilentAsync 以尝试从缓存中检索令牌而不提示用户。如果令牌不存在,则会引发 AdalException。然后您调用 AcquireTokenAsync,它将显示一个登录对话框,用户可以在其中输入他们的凭据。然后将令牌保存在令牌缓存中以供下次使用。

    这并不完全保存 cookie,但它确实保存了令牌,这将阻止用户再次登录。

    【讨论】:

      【解决方案2】:

      没有办法强制服务设置持久性 cookie。没有办法做你今天想做的事。

      此外,下一代库(Microsoft Authentication Library aka MSAL)将使用系统 Web 视图而不是进程内 Web 视图,这遵循了从进程内 Web 视图转移到登录操作的一般行业趋势.

      Net,将来当您能够迁移到 MSAL 时,如果您在系统 Web 视图中启动 Web 应用程序(例如 SharePoint),则可以在您的应用程序和在浏览器中运行的 Web 应用程序之间进行单点登录。

      【讨论】:

        猜你喜欢
        • 2017-07-25
        • 1970-01-01
        • 2016-04-24
        • 2013-03-06
        • 1970-01-01
        • 1970-01-01
        • 2011-04-21
        • 2020-09-22
        • 1970-01-01
        相关资源
        最近更新 更多