【问题标题】:Is there way to get User Role and group from Ad/Ldap without specifying user passwoard?有没有办法在不指定用户密码的情况下从 Ad/Ldap 获取用户角色和组?
【发布时间】:2017-02-01 06:30:32
【问题描述】:

我需要在不输入用户密码或凭证的情况下获取与当前用户关联的网络域名。

我尝试获取用户组并收到错误“发生本地错误”。

下面是我用过的代码。

using (PrincipalContext context = new PrincipalContext(ContextType.Domain, Environment.UserDomainName))
{
    try
    {
        // add the users groups to the result
        var groupList =
            UserPrincipal
                .FindByIdentity(context, IdentityType.SamAccountName, Environment.UserName )
                .GetGroups()
                .Select(group => group.Name)
                .ToList();
        groupList.ToList();
    }
    catch (Exception ex)
    {
        // TODO: LogError( "Unable to query Active Directory.", ex );

    }
}

【问题讨论】:

    标签: c# vb.net active-directory ldap


    【解决方案1】:

    默认情况下,Active Directory 不允许匿名访问。所以是的,如果您想检索除 RootDSE 条目之外的任何其他内容,您必须首先使用适合您的任何方法进行绑定。

    【讨论】:

    • 在我深入研究 RootDSE 时,您能否详细说明一下?当我找到任何属性值时,它都会抛出异常“发生本地错误。”。
    • 您的第一个问题是关于当前用户的域。这通常不是您通过 LDAP 检索的信息,但如果您对 rootDSE 的域相关属性感兴趣,您可以通过匿名会话通过 LDAP 获得该信息 - 使用空的 baseDn 和 searchScope“base”。但是,如果没有成功的绑定操作,则无法访问用户信息。我不知道你的错误信息,看起来你可以连接,所以你的绑定可能是罪魁祸首。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-12
    • 2021-04-15
    • 2010-09-23
    • 1970-01-01
    • 1970-01-01
    • 2014-05-08
    • 1970-01-01
    相关资源
    最近更新 更多