【问题标题】:ADFS 2.0 Web app signoutADFS 2.0 Web 应用注销
【发布时间】:2011-10-01 04:13:01
【问题描述】:

我们正在使用客户 ASP.NET 按钮来注销我们使用 ADFS 进行身份验证的 Web 应用程序。我们尝试了几种方法来尝试让应用正确退出,但似乎没有任何效果。

它通常会将您带到联合服务器上的注销页面,该页面显示您已正确注销,但如果您回击,您仍然可以访问网络应用程序。

试过了: https://{DNS_name_of_RP_STS}/adfs/ls/?wa=wsignout1.0

https://{DNS_name_of_RP_STS}/adfs/ls/?wa=wsignout1.0&wreply={post-sign-out_landing_URL} 等等

有人让它正常工作吗?

感谢您的宝贵时间

【问题讨论】:

    标签: .net asp.net authentication logout adfs2.0


    【解决方案1】:

    我们也有类似的问题。对我们有用的解决方案建议在 ADFS 2.0 管理控制台的信赖方信任中添加一个端点。 请按照以下步骤操作:

    1. 在 google 配置(高级)中添加退出 URL -> SSO -

      注销 URL = https://{DNS_name_of_RP_STS}/adfs/ls/?wa=wsignout1.0

    2. 转到 ADFS 2.0 管理控制台。在端点选项卡下,单击添加

    3. 端点类型 = SAML 注销,绑定 = POST,URL = https://myadfsserver.domain.net/adfs/ls/?wa=wsignout1.0 如果您希望它重定向到另一个页面,您可以设置响应 URL,但我们喜欢 ADFS 站点,因为它会警告您已注销但您仍应关闭浏览器。

    【讨论】:

      【解决方案2】:

      对于我的应用,使用“?wa=wsignout1.0”URL 会清除应用程序 FedAuth cookie 和 ADFS MSISAuth cookie。

      您最终会进入“您已退出”页面。

      从那里,后退按钮将您带回应用程序,但如果您尝试执行任何操作,您将被重定向到 ADFS 以再次登录。

      【讨论】:

        【解决方案3】:

        据我了解,您只需使用适当的 wssignout 操作将用户重定向到 ADFS。这不会删除为您的应用程序创建的身份验证 cookie,因此用户保持登录状态。

        我使用 WSFederationAuthenticationModule 来触发联合注销:

        string absoluteUrl = HttpContext.Request.Url.AbsoluteUri;
        string replyUrl = absoluteUrl.Substring(0, absoluteUrl.LastIndexOf("/") + 1);
        WSFederationAuthenticationModule.FederatedSignOut(null, new Uri(replyUrl));
        

        我正在回复应用程序,因为我想确保用户已退出。

        希望这会有所帮助。

        【讨论】:

        • 非常感谢。我在链接按钮的 onclick 事件中添加了用于注销的代码,它对我有用
        • 如何在web.config中添加WSFederationAuthenticationModule?
        • 您需要将其添加到模块集合中的<system.web><httpModules><system.webServer><modules>。如果您不确定在这两个地方添加它。这是一个例子<add name="WSFederationAuthenticationModule" type="Microsoft.IdentityModel.Web.WSFederationAuthenticationModule, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="managedHandler" />你可以找到更多信息:goo.gl/iY8Dgv
        • @shizik 我在httpModulesmodules 中添加了它,我还在configSections 中添加了section 以消除一些阻止我登录的错误(Source)。然后我在Signout.aspx.cs Page_Load Event 中添加了您答案的 3 行。然后我测试了我的应用程序,但现在我在注销后得到了空白页面,那里没有错误或警告消息。现在,我该怎么办。
        • 您的 Signout.aspx 页面是否受到保护,即它不允许匿名请求。因为如果我没记错的话,这个想法是当您被重定向回注销时,系统应该自动将您重定向到登录页面。
        猜你喜欢
        • 1970-01-01
        • 2013-09-10
        • 2018-06-07
        • 2013-09-15
        • 2014-10-11
        • 1970-01-01
        • 2020-04-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多