【问题标题】:SSO not working for IdentityModel.OidcClientSSO 不适用于 IdentityModel.OidcClient
【发布时间】:2021-03-18 12:02:21
【问题描述】:

我正在将 OIDC 登录添加到 WinForms 应用程序。我使用 IdentityModel.OidcClient 库设置了应用程序,并从他们的 WinForm 示例中提取了样板代码。 OIDC 成功显示登录表单,执行 MFA,然后我取回令牌。

但是,如果我关闭应用程序并再次打开它,我必须再次进行身份验证。通常,浏览器中的 SSO 会话允许我绕过这一步。似乎 OidcClient 正在使用一个浏览器会话,该会话在应用程序关闭时被破坏并且不在应用程序之间共享。

如何配置我的应用程序以使用 SystemBrowser 或其他浏览器,以便在执行之间和/或为使用此组件的不同应用程序维护这些 SSO cookie。

提前致谢。

【问题讨论】:

    标签: winforms openid-connect embedded-browser identitymodel oidc-client


    【解决方案1】:

    首先要检查的是您设置的会话 cookie 是否有未来的过期日期,否则它将只是一个将持续此浏览器会话的 cookie。

    在您的浏览器中,您可以在开发者工具部分看到,如下例所示:

    或者,您可以使用Fiddler 之类的工具来检查设置会话 cookie 的响应,并确保它包含未来的过期日期。

    您可以在 ASP.NET 应用程序中进行配置。

    【讨论】:

    • 谢谢#Tore... 但这并不能回答问题。我遇到的问题是 cookie 存储在浏览器中,并且应用程序正在使用自己的浏览器,因此 cookie 只会持续到应用程序关闭并且也不适用于其他应用程序。我希望它适用于几种不同的应用程序。
    • 您使用的是什么浏览器?如果 cookie 设置了未来的过期日期,一些浏览器会记住 cookie。还是试试这里的方法,从浏览器中取回cookie,下次需要打开浏览器的时候再重新设置一下? c-sharpcorner.com/Resources/851/…
    • 我的问题本质上是使用哪个浏览器以及如何让 IdentityModel.OidcClient 使用该浏览器
    猜你喜欢
    • 2018-07-03
    • 2021-05-07
    • 2016-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-04
    相关资源
    最近更新 更多