C# 使用电子邮件(非sAMAccountName)针对广告进行验证

C# 使用电子邮件(非sAMAccountName)针对广告进行验证,c#,active-directory,C#,Active Directory,是否有任何方法可以使用电子邮件字段(当然还有密码)对广告进行身份验证?我在服务器上设置了sAMAccountName和电子邮件,但我必须使用邮件而不是sAMAccountName进行验证 我使用以下代码使用sAMAccountName进行身份验证(顺便说一下,这是一个类库…) 如果您为每个用户设置了UPN(用户主体名称),并且该名称与电子邮件地址相同,那么您应该能够立即使用它。UPN的格式通常为firstname。lastname@domain。默认情况下,使用active directory的

是否有任何方法可以使用电子邮件字段(当然还有密码)对广告进行身份验证?我在服务器上设置了sAMAccountName和电子邮件,但我必须使用邮件而不是sAMAccountName进行验证

我使用以下代码使用sAMAccountName进行身份验证(顺便说一下,这是一个类库…)

如果您为每个用户设置了UPN(用户主体名称),并且该名称与电子邮件地址相同,那么您应该能够立即使用它。UPN的格式通常为
firstname。lastname@domain
。默认情况下,使用active directory的域名,通常是内部名称(例如UPN
anders)。abel@company.local
)。通常可以注册一个新的UPN后缀,并将用户的电子邮件地址设置为UPN,而不破坏任何内容


否则,您应该能够使用服务帐户附加到广告,根据电子邮件字段搜索正确的用户对象,检索sAMAccountName并使用它登录。

Yeap,进行搜索并获取sAMAccountName是最佳选择。谢谢。我有相关的问题,虽然我是初学者。。。。如果存在子域(childa、abc.com childb.abc.com、childc.abc.com)且包含相同的samaccountname(123456789),广告将如何进行身份验证??是否要逐个检查子域,以便对用户进行身份验证??我的应用程序仅使用samaccountname作为登录id。每个子域中此samaccount的密码有什么不同??
using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, DOMINIO))
{
      return pc.ValidateCredentials(sAMAccountName, Password);                
}