我有一个使用Azure ADFS和Azure ACS进行身份验证的MVC应用程序。当用户首次登录时,会将其重定向到Azure ASC进行身份验证。成功完成后,用户可以使用令牌重新定向回站点,并可以正常使用系统。
当用户退出时,会将其重定向到退出页面,然后返回到原始登录屏幕。问题是,当他们再次单击登录链接时,它会自动再次登录用户,而不需要他们重新进行身份验证。这意味着如果不关闭浏览器就无法更改用户,如果用户离开浏览器窗口,任何人都可以单击登录链接并以该用户身份登录
我的退出代码如下:
public void Logout()
{
var fc = FederatedAuthentication.FederationConfiguration.WsFederationConfiguration;
var signOutMessage = new SignOutRequestMessage(new Uri(fc.Issuer), fc.Realm);
FederatedAuthentication.WSFederationAuthenticationModule.SignOut(signOutMessage.WriteQueryString());
}
和signOutMessage.WriteQueryString()
生成以下内容:
https://myacsnamespace.accesscontrol.windows.net/v2/wsfederation?wa=wsignout1.0&wreply=http%3a%2f%2flocalhost%3a44301%2f
我是否在ACS中错误地配置了某些内容,或者我的代码丢失了什么。我无法弄清楚如何阻止它自动重新验证旧用户
答案 0 :(得分:0)
通常,adfs登录应该要求用户重新进行身份验证 但是,如果用户登录到域内的计算机,则会自动登录(因为她已登录到活动目录)。在域外的计算机上,用户需要提供密码,由浏览器请求 你想怎么改变这种行为?