ADFS 2.0 Web应用程序注销

时间:2011-07-08 10:23:02

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

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

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

尝试: HTTPS:// {DNS_name_of_RP_STS} /adfs/ls/?wa=wsignout1.0

的https:// {DNS_name_of_RP_STS} /adfs/ls/?wa=wsignout1.0&wreply= {-SIGN后out_landing_URL} 等

有没有人让这个工作正常?

感谢您的时间

3 个答案:

答案 0 :(得分:8)

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

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

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

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

希望这有帮助。

答案 1 :(得分:1)

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

你最终选择了“你已经退出”页面。

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

答案 2 :(得分:0)

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

  1. 在google配置中添加注销网址(高级) - > SSO -

      

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

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

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