为什么 HttpContext.Current.User.Identity.Name 返回空白

发布于 2024-12-10 18:41:18 字数 488 浏览 0 评论 0原文

我创建了一个网站。这是一个内部站点。这是一个 .NET 4.0 站点。我想使用浏览该网站的人的 HttpContext.Current.User.Identity.Name 获取用户名。由于它是内部的,所以没有登录页面。我不确定我错过了什么。我的 webconfig 中是否需要以下内容:

<authentication mode="Windows"></authentication>
<identity impersonate="true"/>
<authorization>
  <allow users="?"/>
</authorization>

以及:

  <system.webServer>
  <validation validateIntegratedModeConfiguration="false" />

I created a site. It is an internal site. It is a .NET 4.0 site. I would like to grab the username using HttpContext.Current.User.Identity.Name of the person browsing the site. There isnt a login page since it is internal. I am not sure what I am missing. Do I need the following in my webconfig:

<authentication mode="Windows"></authentication>
<identity impersonate="true"/>
<authorization>
  <allow users="?"/>
</authorization>

and this:

  <system.webServer>
  <validation validateIntegratedModeConfiguration="false" />

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

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

发布评论

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

评论(5

老娘不死你永远是小三 2024-12-17 18:41:18

未经身份验证时,它会显示为空白。您还可以通过执行以下操作来验证这一点:

HttpContext.Current.User.Identity.IsAuthenticated

检查 IIS 中的身份验证级别,是否也设置为启用 Windows 身份验证?

It comes up blank when unauthenticated. You can verify this by also doing:

HttpContext.Current.User.Identity.IsAuthenticated

Check your authentication level in IIS, is it set to enable windows authentication there too?

乱了心跳 2024-12-17 18:41:18

在 iis 中禁用匿名访问并为您的 Web 应用程序启用集成 Windows 安全性。

In iis disable anonymous access and enable integrated windows security for you web application.

故人爱我别走 2024-12-17 18:41:18

,至少

<authentication mode="Windows"></authentication>

是的,您确实需要,如果您使用集成 Windows 身份验证

需要该部分。之后,您应该能够获取登录者的用户名。

不,您不需要:

<validation validateIntegratedModeConfiguration="false" />

Yes, you do need, at least the

<authentication mode="Windows"></authentication>

part is required if you are using Integrated Windows Auth.

After that, you should be able to grab the username of the person logged in.

No, you don't need:

<validation validateIntegratedModeConfiguration="false" />
栖迟 2024-12-17 18:41:18

在 IIS 中,转到站点 \ 默认网站 \ [您的网站]。

选择身份验证选项并禁用匿名身份验证。

In IIS, go to Sites \ Default Website \ [Your Website].

Select Authentication option and disable Anonymous Authentication.

も星光 2024-12-17 18:41:18

就我而言,从 web.config 中删除 行会有所帮助。

我还在 部分中有

In my case removing <remove name="FormsAuthentication" /> line from web.config helps.

I also have <authentication mode="Forms" /> in <system.web> section.

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