我正在尝试确定用户是否是内部ASP.NET 4.0应用程序的Active Directory(AD)组的成员。如果用户不是AD组的成员,则下面的代码在最后一行(返回语句)上引发“尝试访问已卸载的应用程序域”异常错误。

public static bool IsInADGroup(string userName, string groupName)
{
    var principalContext = new PrincipalContext(ContextType.Domain);
    UserPrincipal userPrincipal = UserPrincipal.FindByIdentity(principalContext, userName);
    if (userPrincipal == null)
        return false;

    GroupPrincipal groupPrincipal = GroupPrincipal.FindByIdentity(principalContext, groupName);
    if (groupPrincipal == null)
        return false;

      return userPrincipal.IsMemberOf(groupPrincipal);
}

有关如何解决或其他解决方法的任何想法?

最佳答案

this错误可能是您的问题吗?

我已经使用以下解决方法解决了相同的问题:

           using (DirectoryEntry rootDse = new DirectoryEntry("LDAP://rootdse"))
        {
            var dnsName = rootDse.Properties["dnsHostName"].Value.ToString();
            using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain, dnsName)) {}

关于c# - 确定用户是否在.NET 4.0应用程序的AD组中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7168361/

10-11 19:27