我有一个ASP.NET MVC 3网站,它使用在IIS7.5下运行的Windows身份验证。此网站还使用自定义GetRolesForUser
的{{1}}方法手动检查AD中的组。这不是什么特别的事,现在已经好几个月了。
但是,我们现在有一个用户更改了Active Directory用户名。他们仍然拥有相同的实际AD帐户,但是他们的登录名现在不同了。
不幸的是,这打破了该用户的网站。我正在使用Elmah记录错误,我注意到RoleProvider
正在使用旧帐户名,REMOTE_USER
正在使用新帐户名。看起来LOGON_USER
方法的username
参数获取旧帐户名称 - 因此我假设它使用的是GetRolesForUser
。
我应该定位到网络服务器或网站以进行修复吗?我已经知道,如果安装了身份验证过滤器,REMOTE_USER
和LOGON_USER
只会有所不同。我不知道Web服务器上有这样的东西(尽管我不确定在哪里看),但MVC3是否会以某种方式添加它?
答案 0 :(得分:2)
典型的是,在我发布之后,我的Google-Fu开始了。
似乎这是一个已知问题(按设计)与本地sid缓存: http://support.microsoft.com/kb/946358
解决方法是遵循文章中的注册表更改(并再次撤消它?),或重新启动Web服务器。我已经读过IISRESET
也可能解决这个问题。