我想知道如何获得AD小组的成员列表。
检查输入的用户密码是否正确无误。为此,我使用Novell的Ldap.NetStandard:
private bool IsUserValid(string userName,string userPassword)
{
try{
using (var connection = new LdapConnection { SecureSocketLayer = false })
{
connection.Connect("test.local", LdapConnection.DEFAULT_PORT);
connection.Bind(userDn, userPassword);
if (connection.Bound)
{
return true;
}
}
}
catch (LdapException ex)
{
Console.WriteLine(ex.Massage);
}
return false;
}
我现在想要的是这样的事情:
bool isUserInGroup("testUser","testGroup");
问题是我无法使用我的方法:
public bool IsUserMemberOfGroup(string userName,string groupName)
{
var ldapConn = GetConnection();
var searchBase = "";
var filter = $"(&(objectClass=group)(cn={groupName}))";
var search = ldapConn.Search(searchBase, LdapConnection.SCOPE_BASE, filter, null, false);
while (search.hasMore())
{
var nextEntry = search.next();
if (nextEntry.DN == userName)
return true;
}
return false;
}
我做了什么,我没有从我的Ldap.Search()
取回任何价值......
答案 0 :(得分:0)
.NET Core 2现在有System.DirectoryServices.AccountManagement
的实现。可通过nuget获得。
使用此软件包,您可以执行以下操作:
using (var principalContext = new PrincipalContext(ContextType.Domain, "YOUR AD DOMAIN"))
{
var domainUsers = new List<string>();
var userPrinciple = new UserPrincipal(principalContext);
// Performe search for Domain users
using (var searchResult = new PrincipalSearcher(userPrinciple))
{
foreach (var domainUser in searchResult.FindAll())
{
if (domainUser.DisplayName != null)
{
domainUsers.Add(domainUser.DisplayName);
}
}
}
}
这将搜索您域中的用户。搜索您的组几乎可以做到。我过去搜索广告(问题描述)的方式现在已过时:
检查输入的用户密码是否正确可以正常工作 精细。为此,我正在使用Novell的Ldap.NetStandard: