LDAP连接仅适用于localhost

时间:2015-06-04 15:05:13

标签: c# asp.net web-applications active-directory ldap

我有一个登录页面,用于验证具有活动目录的凭据并重定向到下一页。当我在本地运行它时它工作得很完美,但是当我把它放在我们的web服务器上时,它会在尝试创建组主体时出错:(System.DirectoryServices.DirectoryServicesCOMException(0x80072020))

我需要找出为什么它可以在一个而不是另一个上工作。任何意见都非常感谢。

            PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "domain.com");
            GroupPrincipal grp = GroupPrincipal.FindByIdentity(ctx, IdentityType.Name, "Building Webmasters");
            UserPrincipal up = UserPrincipal.FindByIdentity(ctx, IdentityType.SamAccountName, txtUserName.Value);

            bool auth = ctx.ValidateCredentials(txtUserName.Value, txtPassword.Value);
            bool groupauth = grp.Members.Contains(up);

1 个答案:

答案 0 :(得分:0)

我发现它在创建用户主体时抛出了错误。所以我把它更改为抓取组主体并执行包含重载的包含,我可以从表单中传入用户名。这对我有用。

            bool auth = ctx.ValidateCredentials(txtUserName.Value, txtPassword.Value);
            bool groupauth = grp.Members.Contains(ctx, IdentityType.SamAccountName, txtUserName.Value);
            bool adminauth = admingrp.Members.Contains(ctx, IdentityType.SamAccountName, txtUserName.Value);