Reputation: 6077
I'm trying to implement SSO (Single Sign On) but I can't get the correct username.
At my place, when I retrieve the currently logged on user I get: USER@DOMAIN
. Which is correct. When the same code is executed at the customer, it returns: USER@DOMAIN
. But in that situation; it is not correct. The expected value at the customer is [email protected]
.
I'm not familiar enough with SSO to say anything about the INTRANET part. At the customer, other software uses SSO as well and therefore it is required that 'my' software formats the user/domain into [email protected]
.
I've tried several pieces of code to retrieve the user/domain of the currently logged in user. The results below are from the customer.
UserPrincipal.Current.UserPrincipalName - returns user@domain
System.Environment.UserDomainName - returns INTRANET
WindowsIdentity.GetCurrent.Name - returns INTRANET\user
So I'm looking for a way to retrieve the complete username of the currently logged in user with the 'subdomain' (INTRANET) as well. Does anybody know what I'm doing wrong?
*Edit: * I rephrased my question. I feel like my English is getting worse by day... :S
Upvotes: 4
Views: 3228
Reputation: 15566
Try following code.
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);
Upvotes: 2