1

我有一个 Web 应用程序,并在 adfs 的回复方中添加了它。对于我的应用程序,我使用了身份和访问工具。我的应用程序建立在 .Net 4.5 和 MVC 4 架构上。对于登录,我被重定向到登录页面,它使用我的 ADFS 活动目录身份验证。我面临的问题是注销。到目前为止,我已经尝试了以下事情,
1。 <a href="<myADFSserver>/adfs/ls/?wa=wsignout1.0&wreply=https://localhost">Logout</a>

这会将我重定向到注销屏幕,但是在单击后退按钮时,我可以返回到我的应用程序。如果我在下一个选项卡中打开我的应用程序,它仍然会在没有任何凭据提示的情况下打开。
2.

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

这给了我一个错误,说注销 url 不能为空。进入 URl 时,情况与第 1 点相同。

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

4

2 回答 2

3

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

    public void LogOut()
    {          
        var module = FederatedAuthentication.WSFederationAuthenticationModule;
        module.SignOut(false);
        var request = new SignOutRequestMessage(new Uri(module.Issuer), module.Realm);
        Response.Redirect(request.WriteQueryString());
    }
于 2014-09-11T05:39:21.893 回答
1

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

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

于 2013-10-10T05:52:36.660 回答