由于最近员工姓名变更,我们遇到了一种情况,ASP.NET Web 应用程序的 HttpContext.Current.User.Identity.Name 属性解析为旧用户名。这已在详细讨论过这里,这里, 然后再次这里。将 LsaLookupSids 函数的 LsaLookupCacheMaxSize 重置为零显然可以解决此问题。
对我们来说奇怪的是,在我们拥有的众多 Web 应用程序中(所有内部网 - Windows 身份验证 - IIS 7.5 - ASP.NET),唯一拒绝最近重命名的员工访问的程序是在 IIS Windows 身份验证提供程序列表中 Negotiate 提供程序位于 NTLM 之上的程序。
采用 NTLM 的网站不会出现此问题。
我的问题是:NTLM 是否会绕过 Web 服务器上的 LSA SID 缓存并直接通过域控制器进行身份验证?