我有一个要求,我想根据特定用户的通配符条件来获取特定组。
示例:对于用户james
,获取名称以application
开头的所有组。
<add key="AdGroupSearchParam" value="Application*;*Groups*;*Managers;" />
代码:我能够基于通配符获得所有组。不知道如何在添加用户名过滤器中修改此代码。
var result = new List<UserGroups>();
string username = "james";
using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain))
{
var paramValue = //Get values from file seprated by ';'
foreach (var search in paramValue)
{
GroupPrincipal qbeGroup = new GroupPrincipal(ctx)
{
Name = search
};
PrincipalSearcher srch = new PrincipalSearcher(qbeGroup);
foreach (var found in srch.FindAll())
{
// Add only if user is part of this group
result.Add(new UserGroups
{
GroupName = found.SamAccountName,
GroupId = found.Guid.ToString()
});
}
}
}
有什么建议吗?