我们有一个与 ADFS 3 集成的网站以进行身份验证。网站允许用户更改他们的用户名,从而改变他们在 AD 中的用户名。如果用户更改了他们的用户名,我们会使用 WSFederationAuthenticationModule.FederatedSignOut 将他们注销。但是页面重定向到 adfs url 并引发错误。事件日志显示“用户名或密码错误”。
MSIS7066:请求的身份验证失败。---> System.Security.SecurityException: 用户名或密码不正确。我想知道这是因为用户名更改。我尝试在注册表中将 lsalookupcachemaxsize 设置为 0 并且没有密钥。顺便说一句,ADFS 3 甚至会考虑这个注册表项吗?
使用的代码如下 -
FormsAuthentication.SignOut();
FederatedAuthentication.SessionAuthenticationModule.SignOut();
FederatedAuthentication.SessionAuthenticationModule.DeleteSessionTokenCookie();
FederatedAuthentication.WSFederationAuthenticationModule.SignOut(false);
Response.Expires = 0;
Session.Abandon();
var authenticationModule = FederatedAuthentication.WSFederationAuthenticationModule;
WSFederationAuthenticationModule.FederatedSignOut(new Uri(authenticationModule.Issuer), new Uri(authenticationModule.Realm));