System.DirectoryServices.DirectoryServicesCOMException 仅与 Google Chrome 一起出现

System.DirectoryServices.DirectoryServicesCOMException occurs only with Google Chrome

远程 IIS 8.5 上带有 ApplicationPoolIdentity 的 MVC 应用程序。在 IE11 上工作正常,但在使用 Google Chrome 时,我得到一个带有 System.DirectoryServices.DirectoryServicesCOMException

的黄色屏幕

这是导致错误的代码

 protected void Session_Start()
    {
        // Load current AD user
        UserPrincipal user = UserPrincipal.Current;
        Session.Add(name: "DisplayName", value: user.DisplayName);
        Session.Add(name: "AccountName", value: user.SamAccountName);
    }

同样在我的 Web.config 文件中,我有 <identity impersonate="true" /><validation validateIntegratedModeConfiguration="false" /> 最后一点是我发现使事情正常进行的唯一方法。但它只适用于IE。

为什么它在 IE11 中可以正常工作,但在 Chrome 中却不行?我做错了什么?

更新 #1

我可以在使用 HostingEnvironment.Impersonate() 包装对 Active Directory 的每次调用时使其工作。但是当我尝试使用 user.Save()

更改 AD 中的帐户时,它仍然给我一个黄屏

System.UnauthorizedAccessException: Access denied.

我没有对 Active Directory 域的完全访问权限,但我可以在我的 OU 中重置密码和 enable/disable 帐户。

使用这个 class 包装对 AD 的每次调用解决了我的问题。