HttpContext.Current.User.Identity 中是否会缺少域名?

发布于 2025-01-06 03:59:31 字数 517 浏览 1 评论 0原文

我正在开发一个简单的单页 ASP.Net 网站,供公司内部有限数量的用户使用。

在其中,我使用 HttpContext.Current.User.IdentityDomain\ActiveDirectoryUserName 格式获取记录的用户名,并按照答案中的建议删除域名这篇文章: 用于解析 User.Identity 的内置帮助程序。命名为 Domain\Username 并将其显示在 Hello xyz 之类的标签中

是否会出现域名不存在的情况 在HttpContext.Current.User.Identity


更新:该网站使用 Windows 身份验证

I'm working on a simple one page ASP.Net site used inside the company by a limited number of users.

In it, I use HttpContext.Current.User.Identity to get the logged user's name in the format Domain\ActiveDirectoryUserName and stripping out the domain name as suggested by the answer in this post: Built-in helper to parse User.Identity.Name into Domain\Username and display it in a label like Hello xyz

Will there ever be a scenario, where the Domain name will not be present in HttpContext.Current.User.Identity?


UPDATE: This site uses Windows Authentication

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

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

发布评论

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

评论(1

梅倚清风 2025-01-13 03:59:31

首先,如果用户是匿名的,您将得到一个空字符串来表示用户的身份。

其次,当您使用支持域的身份验证源时,仅存在一个域。如果您在 IIS 下使用 Windows 集成身份验证,则该域将始终出现在每个非匿名用户身份中。如果您使用表单身份验证或其他身份验证源,则提供程序可以完全控制用户身份的格式。


正如您所指出的,您正在使用 Windows 集成身份验证,只要用户经过身份验证,您将始终拥有一个域。如果允许匿名访问,则应在尝试解析其名称之前先检查 HttpContext.Current.User.IsAuthenticated

Firstly, if the user is anonymous, you'll get an empty string for the user's identity.

Secondly, there is only a domain present when you're using an authentication source which supports domains. If you're using Windows Integrated Authentication under IIS, the domain will always be present in every non-anonymous user identity. If you're using forms authentication or another authentication source, the provider has full control over the format of the user's identity.


As you've indicated you're using Windows Integrated Authentication, you'll always have a domain, provided the user is authenticated. If you allow anonymous access, you should check that HttpContext.Current.User.IsAuthenticated first before trying to parse their name.

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