Asp.net mvc 4 标识。名称为空

Asp.net mvc 4 标识。名称为空,asp.net-mvc-4,authorization,Asp.net Mvc 4,Authorization,我的MVC应用程序 装饰控制器 我正在尝试使用HttpContextBase获取请求的用户名 为什么标识。名称为空 Web.config看起来像 请帮助获取请求用户..好的,这就是您需要做的 我不知道在web.config中设置什么-但是更改这些选项可以让它工作。要获取此屏幕,请选择项目并按“F4” 编辑:我想当你同时托管这个站点时,你需要在IIS中配置它。 这在web.config中可能会有所帮助 <system.webServer> .... <s

我的MVC应用程序

装饰控制器

我正在尝试使用HttpContextBase获取请求的用户名

为什么标识。名称为空

Web.config看起来像



请帮助获取请求用户..

好的,这就是您需要做的

我不知道在web.config中设置什么-但是更改这些选项可以让它工作。要获取此屏幕,请选择项目并按“F4”

编辑:我想当你同时托管这个站点时,你需要在IIS中配置它。 这在web.config中可能会有所帮助

  <system.webServer>
    ....
    <security>
      <authentication >
        <anonymousAuthentication enabled="false"/>
        <windowsAuthentication enabled="true"/>
      </authentication>
    </security>
  </system.webServer> 

....

当您尝试此操作时,用户是否已实际登录?那么你已经有了认证cookie了?只有在“登录用户”登录后,您才能访问其详细信息。我正在尝试获取windows登录用户。我的应用程序直接通过URL访问。没有登录页面我可以使用HttpContext.Current.Request.LogonUserIdentity获取具有域名的请求用户,但仍然不清楚HttpContextBase标识名为何为空?您使用的是Firefox吗?
  public class AuthorizedRoles : AuthorizeAttribute
  {
    protected override bool AuthorizeCore(HttpContextBase httpContext)
    {
       httpContext.User.Identity.Name
<authentication mode="Windows" />
<authorization>
  <allow users="*"/>
</authorization>
  <system.webServer>
    ....
    <security>
      <authentication >
        <anonymousAuthentication enabled="false"/>
        <windowsAuthentication enabled="true"/>
      </authentication>
    </security>
  </system.webServer>