SSO 获取用户名/域

发布于 2024-10-29 11:03:52 字数 909 浏览 3 评论 0原文

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

在我的地方,当我检索当前登录的用户时,我得到:USER@DOMAIN。这是正确的。当在客户处执行相同的代码时,它返回:USER@DOMAIN。但在那种情况下;这是正确的。客户的预期价值为[电子邮件受保护].

我对 SSO 不太熟悉,无法谈论 INTRANET 部分。在客户处,其他软件也使用 SSO,因此需要“我的”软件将用户/域格式化为 [电子邮件受保护]

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

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

因此,我正在寻找一种方法来检索当前登录用户的完整用户名以及“子域”(内联网)。有人知道我做错了什么吗?

*编辑:*我重新表述了我的问题。我感觉我的英语一天比一天差...:S

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

遗失的美好 2024-11-05 11:03:52

尝试以下代码。

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

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);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文