无法使用Federation Services从ASP Web应用程序注销

问题描述 投票:0回答:1

我正在尝试从Intranet应用程序注销,该应用程序也可以通过使用Active Directory联合身份验证服务登录从Internet访问。

首先,我刚刚给https://federation.mycompany.com/adfs/ls/?wa=wsignout1.0做了一个href。联合页面显示并显示一条消息:“您已成功注销!”但如果我回去,我可以再次访问网络应用程序,而无需再次登录。我还尝试附加重定向参数,以便提示用户再次插入凭据。但重定向不会发生。

后来我在我的一个控制器中创建了一个Action。这是代码:

public ActionResult Logoff()
{
    string absoluteUrl = HttpContext.Request.Url.AbsoluteUri;
    string replyUrl = absoluteUrl.Substring(0, absoluteUrl.LastIndexOf("/")+1);
    WSFederationAuthenticationModule.FederatedSignOut(new Uri(@"https://federation.mycompany.com/adfs/ls/?wa=wsignout1.0"), new Uri(replyUrl));
    return null;
}

但问题是一样的。

我尝试的第三件事是在退出之前删除cookie。但似乎认证cookie是在域下而不是我的应用程序,因此无法访问。

如何解决此退出问题?

请帮忙。

c# asp.net-mvc adfs
1个回答
0
投票

我只是假设,但我怀疑您的ADFS配置为Windows身份验证,而您的应用程序有登录按钮。

如果是这种情况,那么您无法真正从已经过身份验证的ADFS注销,并且很高兴在应用程序的下一个请求时重新发出令牌。您无法对此进行任何操作,因为使用MTML / Kerberos执行身份验证,这是在您关闭凭据之前保留凭据的浏览器。

解决方案是将ADFS更改为Forms模式,看看它是否有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.