2013-10-03 43 views
1

我有一个web应用程序,并在adfs中的回复方中添加了该应用程序。对于我的应用程序,我使用了身份和访问工具。我的应用程序建立在.Net 4.5和MVC 4架构上。对于登录,我被重定向到登录页面,它使用我的ADFS活动目录身份验证。我面临的问题是退出。到目前为止我尝试了下面的事情,
无法让我的网络应用程序注销ADFS

这重定向我退出画面,但单击后退按钮,我能够回到我的应用程序。如果我在下一个选项卡中打开我的应用程序,它仍然会打开而没有任何凭据提示。
2.

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

这给了我一个错误说signout网址不能为空。在进入URl时,情况与第1点相同。

我在上面的代码中缺少什么或者可能的解决方案是什么。

回答

2

下面的代码让它工作。感谢您的支持..

public void LogOut() 
    {   
     var module = FederatedAuthentication.WSFederationAuthenticationModule; 
     module.SignOut(false); 
     var request = new SignOutRequestMessage(new Uri(module.Issuer), module.Realm); 
     Response.Redirect(request.WriteQueryString()); 
    } 
1

您应该可以为每个依赖方配置注销URL。根据我的经验,ADFS随后为每个启动会话的服务使用(隐藏)iframe,并将RP应用程序的注销页面作为iframe的src。

这应该使#1和#2工作。

相关问题