c# - 如何在 C# 中使用 AD 组名称查找 Active Directory 组电子邮件地址

标签 c# .net asp.net-mvc visual-studio active-directory

我有一个名为 Stack Over Flow IT 的 Active Directory 组。需要找到AD组电子邮件,如 <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="a6d5d2c7c5cdc9d0c3d4c0cac9d1cfd2e6d5d2c7c5cdc9d0c3d4c0cac9d188c5c9cb" rel="noreferrer noopener nofollow">[email protected]</a> 。无需查找AD用户列表。

如何查找AD组电子邮件地址?

或者如何使用 AD 组电子邮件地址查找 AD 组名称?

// set up domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);

// find the group in question
GroupPrincipal group = GroupPrincipal.FindByIdentity(ctx, "YourGroupNameHere");

我无法使用上述 group 找到 Active Directory 组电子邮件地址实例代码。

最佳答案

群组邮件

您可以执行以下操作:

PropertyValueCollection email = ((DirectoryEntry) group.GetUnderlyingObject()).Properties["mail"];

如果您有RSAT您可以通过以下方式验证您的代码(在 powershell 中):

get-adgroup -Identity "Stack Over Flow IT" -properties mail | select name,mail | sort mail

通过邮件查找群组

为了完整性,这里是相反的方法:

// replace stuff inside [] to match your environment
DirectoryEntry root = new DirectoryEntry("LDAP://dc=[YOUR DC]", [username], [password], AuthenticationTypes.Secure);

DirectorySearcher groupSearcher = new DirectorySearcher(root);
groupSearcher.Filter = "(<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="e588848c89d8969184868e8a93809783898a928c91a5969184868e8a93809783898a92cb868a88" rel="noreferrer noopener nofollow">[email protected]</a>)";
groupSearcher.PropertiesToLoad.Add("name");

foreach (SearchResult groupSr in groupSearcher.FindAll())
{
    ResultPropertyValueCollection groupName = groupSr.Properties["name"];
    // do something with finding
}

关于c# - 如何在 C# 中使用 AD 组名称查找 Active Directory 组电子邮件地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69278143/

相关文章:

jQuery 代码适用于控制台,但不适用于页内

asp.net - Entity Framework : Generating specific table if doesn't exist?

c# - 为什么我的 for 循环告诉我我正在将 int 转换为 bool?

c# - 如何使用转发器显示 session 中的成员?

c# - Visual Studio 2015 Update 3 中 ASP.NET Core v1.0 的浏览器链接

c# - C# 中的静态 XML 序列化程序是否会导致内存过度增长?

c# - 关于 C# 委托(delegate)的一个问题

c# - 如何计算在我的窗口窗体中按下了多少个按钮?

python - swig 生成 python 文件加 C#

asp.net - 使用 ASP.NET MVC 属性路由时的默认路由