为什么表单身份验证的HttpContext.Current.User具有Windows用户名

时间:2014-06-19 09:11:46

标签: asp.net iis-7 forms-authentication windows-authentication

我有一个使用自定义(表单)身份验证和授权的Web应用程序。用户登录后,使用提供的用户名设置GenericPrincipal。使用IIS Express在Visual Studio 2012 IDE上进行授权工作正常。但是,我在发布的Web服务器上看起来无法解释的用户获得了授权失败。我做了一个

Response.Write(HttpContext.Current.User.Name) 

并发布到网络服务器,我看到我的Windows ID被返回,而不是我登录到网站上的自定义用户名。

我的配置设置不是问题,这里有一个示例

<system.web>
<authentication mode="Forms" >
      <forms loginUrl="Login.aspx" timeout="30" defaultUrl="Default.aspx" cookieless="AutoDetect" ></forms>
    </authentication>
    <authorization>
      <deny users="?" />
    </authorization>
</system.web>

任何人都可以帮我解决这个问题

1 个答案:

答案 0 :(得分:0)

我发现此问题是由Web服务器上的IIS配置引起的。

在我的网站的IIS身份验证设置中,我必须禁用所有身份验证模式(在我的情况下为 Windows身份验证之外的匿名表单身份验证。

我需要匿名身份验证才能让用户登陆登录页面(否则IIS会抛出401授权错误)