我有一个使用自定义(表单)身份验证和授权的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 回答
我发现此问题是由Web服务器上的IIS配置引起的 .
在我的站点的IIS中的身份验证设置中,我必须 disable 所有身份验证模式(在我的情况下为Windows身份验证) except 用于匿名和表单身份验证 .
我需要匿名身份验证才能让用户登陆登录页面(否则IIS会抛出401授权错误)