System.DirectoryServices.DirectoryServicesCOMException仅在Google Chrome中发生

时间:2017-01-30 05:20:20

标签: asp.net-mvc google-chrome asp.net-mvc-4 impersonation iis-8.5

远程IIS 8.5上带有ApplicationPoolIdentity的MVC应用程序。适用于IE11,但在使用谷歌浏览器时,我会看到一个带有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中重置密码并启用/禁用帐户。

1 个答案:

答案 0 :(得分:0)

https://stackoverflow.com/a/14545336/75172

使用此类来包装对AD的每次调用都解决了我的问题。