我为客户端构建了一个ASP.NET webforms应用程序,并使用Forms身份验证来保证安全性。当我在本地运行它(在三台不同的PC上,加上我的一个队友PC)时,我们可以毫无问题地登录。但是当我们在客户端的服务器上部署它时,登录重定向失败。
我们可以看到身份验证正常运行,因为母版页更新并显示仅供经过身份验证的用户使用的选项,但表单始终会重定向到登录页面。
以下是web.config的一部分:
<authentication mode="Forms">
<forms loginUrl="default.aspx" name=".ASPXFORMSAUTH" defaultUrl="home.aspx" slidingExpiration="true" timeout="60">
</forms>
</authentication>
<authorization>
<deny users="*" />
<allow users="*" />
</authorization>
主页中的代码:
protected void Page_Load(object sender, EventArgs e)
{
if (!Request.IsAuthenticated)
{
hylHome.Visible = false;
hylSearch.Visible = false;
lbtnLogout.Visible = false;
}
else
并且,以防万一,处理的行创建身份验证:
FormsAuthentication.RedirectFromLoginPage(txtusername.Text,false);
我假设它是某个停止重定向的IIS服务器上的设置,但我不知道服务器。任何帮助,将不胜感激。感谢。
答案 0 :(得分:0)
两个更新解决了这个问题。正如Darren Kopp指出的那样,web.config必须更新为:
<deny users="?" />
之后,在Humpy评论的启发下,我在验证方法结束时也错过了response.redirect="default.aspx"
。