【问题标题】:Not able to make my web app logout of ADFS无法让我的 Web 应用程序退出 ADFS
【发布时间】:2013-10-09 17:57:09
【问题描述】:

我有一个 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 点相同。

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

【问题讨论】:

    标签: c# asp.net-mvc-4 authentication logout adfs2.0


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-29
        • 1970-01-01
        • 1970-01-01
        • 2011-12-15
        • 2011-02-01
        相关资源
        最近更新 更多