我正在尝试实施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
答案 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);