SSO获取用户名/域名

时间:2011-04-04 11:15:55

标签: .net single-sign-on

我正在尝试实施SSO(单点登录)但我无法获得正确的用户名。

在我的位置,当我检索当前登录的用户时,我得到:USER@DOMAIN。哪个是对的。当客户执行相同的代码时,它返回:USER@DOMAIN。但在那种情况下;它正确。客户的预期价值为USER@INTRANET.DOMAIN

我对SSO不太熟悉,无法对INTRANET部分说些什么。在客户处,其他软件也使用SSO,因此要求“我的”软件将用户/域格式化为USER@INTRANET.DOMAIN

我尝试了几段代码来检索当前登录用户的用户/域。以下结果来自客户。

UserPrincipal.Current.UserPrincipalName - returns user@domain 
System.Environment.UserDomainName - returns INTRANET
WindowsIdentity.GetCurrent.Name - returns INTRANET\user

所以我正在寻找一种方法来检索当前登录用户的完整用户名和'subdomain'(INTRANET)。有人知道我做错了什么吗?

* 编辑:* 我改述了我的问题。我觉得白天我的英语越来越差......:S

1 个答案:

答案 0 :(得分:2)

请尝试以下代码。

string domainName = System.Net.NetworkInformation.IPGlobalProperties.GetIPGlobalProperties().DomainName;
string nametext = WindowsIdentity.GetCurrent().Name.Split('\\')[1];

//OR 
// string nametext = Environment.UserName;

string fullname = String.Format("{0}@{1}", nametext, domainName);