c# 检查用户是否是组的成员?

标签 c# authentication active-directory authorization

我有一个代码可以用来检查用户是否是 AD 的成员,运行良好,

现在我想添加检查用户是否也是组成员的可能性!

我需要修改什么才能实现这一点,我做了一些工作,但失败了!

这是我的代码:

        //Authenticate a User Against the Directory
        private bool Authenticate(string userName,string password, string domain)
        {

            if (userName == "" || password == "")
            {
                return false;
            }

            bool authentic = false;
            try
            {
                DirectoryEntry entry = new DirectoryEntry("LDAP://" + domain,userName, password);
                object nativeObject = entry.NativeObject;
                authentic = true;
            }
            catch (DirectoryServicesCOMException) { }
            return authentic;
        }

我想做成这样:

private bool Authenticate(string userName,string password, string domain, string group)

最佳答案

这在 Windows XP 或更早版本上不可用。

无论如何,为了检查组成员资格,您可以使用此代码:

bool IsInGroup(string user, string group)
{
    using (var identity = new WindowsIdentity(user))
    {
        var principal = new WindowsPrincipal(identity);
        return principal.IsInRole(group);
    }
}

关于c# 检查用户是否是组的成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4366090/

相关文章:

c# - 在不同线程中使用一个类的实例

c# - 从列表中的数组中删除对象

java - REST 服务上的身份验证 token 有什么意义

powershell - 为用户返回管理员 saccountname

security - LogonUser 对于已禁用的帐户返回 true

c# - Active Directory,枚举用户组,COM 异常

c# - 使用普通滚动动画滚动到 Scrollviewer 中的某个位置

c# - 如何使用正则表达式从字符串中生成负小数?

azure - 使用 Python SDK 生成 Azure 容器 SAS token 时出错

sql-server - 通过 Azure AD MFA 使用 Powershell 连接到 SQL Server