首页 文章

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

提问于
浏览
0

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

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

并发布到Web服务器,我看到我的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

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

    在我的站点的IIS中的身份验证设置中,我必须 disable 所有身份验证模式(在我的情况下为Windows身份验证) except 用于匿名和表单身份验证 .

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

相关问题