2011-07-08 103 views
12

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

它通常会将您带到联合服务器上的注销页面,该页面上显示您已正确注销,但如果您返回,仍然可以访问该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} etc

有没有人得到这个工作正常?

感谢您的时间

回答

8

据我所知,你只是将用户重定向到ADFS与适当wssignout行动。这不会删除为您的应用程序创建的身份验证Cookie,因此用户保持登录状态。

我用WSFederationAuthenticationModule触发联合signout:

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

我回答返回给应用程序,因为我想确保用户注销。

希望这会有所帮助。

+0

非常感谢。我在注销的链接按钮的onclick事件中添加了代码,它适用于我 – Miller

+0

如何在web.config中添加WSFederationAuthenticationModule? –

+0

您需要将其添加到''或''中的模块集合中。如果您不确定将它添加到两个地方。下面是一个示例''你可以找到更多的信息:http://goo.gl/iY8Dgv – shizik

1

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

您最终在“您已注销”页面。

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

0

我们也有类似的问题。为我们工作的解决方案建议在ADFS 2.0管理控制台中的依赖方信任中添加端点。 请遵循以下步骤:

  1. 添加signout 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的网站,因为它警告说,您已注销,但仍应关闭浏览器。