user.identity.name(c#)在哪里获得它的价值?

时间:2014-09-11 20:45:54

标签: c# active-directory userprincipal

虽然我们在内部使用AD,但我很确定它无法从AD获得它。我遇到的问题是使用的应用程序使用user.identity.name获取当前用户名,并在@ mycompany.com上使用它来使用它从应用程序内发送电子邮件。问题是一些有超过20个字符名称的人无法发送电子邮件,因为他们的名字被切断了。所以我假设user.identity.name正在抓取SAMAccountName。我将通过从AD获取userPrincipalName来修复它,但我希望验证user.identity.name是否从samaccountname获取其值。

编辑以添加更多信息。在这种特殊情况下,它是在内部服务器上运行的WinForms应用程序。我们使用表单身份验证来对AD进行身份验证(至少这是向我解释的方式)。因此,如果在这种情况下user.identity.name实际上是从AD中提取的,有没有办法指定UPN而不是sam帐户名?

1 个答案:

答案 0 :(得分:1)

取决于您使用它的位置。在标准(WinForms)应用程序中,它来自操作系统,基于谁登录。如果用户是域的一部分,则可能来自AD。或者它可能只是来自OS的已定义用户的内部列表。

对于Web应用程序,它来自AuthenticationProvider,它也可以从AD或数据库等获取。