C# 如何检查输入字符串是否为有效的active directory userPrincipalName?

C# 如何检查输入字符串是否为有效的active directory userPrincipalName?,c#,active-directory,C#,Active Directory,用户将输入他想要的登录名,我需要按给定的名称创建active directory用户。所以我需要验证它是否符合AD userPrincipalName规则。我该怎么做呢?您只需查询UPN(全林范围,所以进行globalcatalog搜索)。如果DirectorySearcher返回一个对象,则UPN正在使用中 您还需要检查计划的samAccountName是否未在目标域中使用,以及计划的用户名是否不在目标OU或容器中。如上所述,在这两种搜索中,如果DirectorySearcher返回结果,则您

用户将输入他想要的登录名,我需要按给定的名称创建active directory用户。所以我需要验证它是否符合AD userPrincipalName规则。我该怎么做呢?

您只需查询UPN(全林范围,所以进行globalcatalog搜索)。如果DirectorySearcher返回一个对象,则UPN正在使用中

您还需要检查计划的samAccountName是否未在目标域中使用,以及计划的用户名是否不在目标OU或容器中。如上所述,在这两种搜索中,如果DirectorySearcher返回结果,则您不能继续,而是选择了其他选项


查看哪些属性必须是唯一的,但请记住,虽然表中没有提到用户的名称属性,但在示例1中引用了该属性。

到目前为止您是否尝试过任何方法?请阅读,我在互联网上搜索了答案,但我没有找到任何可以做到这一点的方法(有点奇怪:D)我只知道有这样的命令StringHelper.RemoveDiacritics,但在这种情况下使用它是否足够正确,验证它的真正方法是简单地尝试创建具有该名称的广告用户帐户,看看它是否失败或成功。@Chris:我不完全同意。如果我们有机会事先检查,我们可以避免一些严重的头痛。可能没有GC可用,尽管UPN在另一个域中使用,但可以重新分配。