2

在 .Net 4.5 MVC Web 应用程序中,我们使用基于 AD 的角色,为此我们依赖 System.Web.Security.Roles.GetRolesForUser(HttpContext.Current.Request.LogonUserIdentity.Name)

但是查看 elmah 日志,我们发现对于某些请求,并非所有请求都意外失败

内部堆栈跟踪

System.Configuration.Provider.ProviderException: Unable to query Active Directory. ---> System.DirectoryServices.ActiveDirectory.ActiveDirectoryServerDownException: The remote procedure call failed.

 at System.DirectoryServices.ActiveDirectory.Utils.GetDSHandle(String domainControllerName, String domainName, IntPtr authIdentity, LoadLibrarySafeHandle libHandle)
   at System.DirectoryServices.ActiveDirectory.DomainController.GetDSHandle()
   at System.DirectoryServices.ActiveDirectory.DomainController.GetDomainControllerInfo()
   at System.DirectoryServices.ActiveDirectory.DomainController.get_SiteName()
   at System.DirectoryServices.AccountManagement.ADStoreCtx.GetGroupsMemberOf(Principal p)
   at System.DirectoryServices.AccountManagement.Principal.GetGroupsHelper()
   at App.AppRoleProvider.GetRolesForUser(String username)
4

0 回答 0