我在事件目录中有一个安全组(如下图所示),该安全组具有与之关联的电子邮件地址。我如何获得该组的电子邮件地址? GroupPrincipal
对象上没有任何电子邮件地址属性。
这就是我检索所有组的方式:
using (PrincipalContext context = new PrincipalContext(DirectoryContextType, Domain)) {
using (var groupSearcher = new GroupPrincipal(context)) {
using (var searcher = new PrincipalSearcher(groupSearcher)) {
foreach (GroupPrincipal group in searcher.FindAll()) {
//How do I get the e-mail address?
}
}
}
}
最佳答案
如果要从“帐户管理”中执行此操作,则需要make a new class that exposes that property。
[DirectoryObjectClass("group")]
[DirectoryRdnPrefix("CN")]
public class GroupPrincipalsEx : GroupPrincipal
{
public GroupPrincipalsEx(PrincipalContext context) : base(context) { }
public GroupPrincipalsEx(PrincipalContext context, string samAccountName)
: base(context, samAccountName)
{
}
[DirectoryProperty("mail")]
public string EmailAddress
{
get
{
if (ExtensionGet("mail").Length != 1)
return null;
return (string)ExtensionGet("mail")[0];
}
set { this.ExtensionSet("mail", value); }
}
}
关于c# - 使用DirectoryServices.AccountManagement,如何获取事件目录安全组的电子邮件地址?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14198517/