.net – SSO获取用户名/域名

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

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

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

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

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

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

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

最佳答案 请尝试以下代码.

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);
点赞