我有一个使用简单Forms身份验证的极其简单的网站的问题。
我有一个Default.aspx页面和一个Login.aspx页面。
Default.aspx受到<deny users="?" />
的保护。
Login.aspx调用
FormsAuthentication.RedirectFromLoginPage( tbUserName.Text, chPersist.Checked );
我使用Fiddler检查重定向是否有效。它有效。但默认页面始终会重定向回登录页面(HTTP/1.1 302 Found)。 Cookie按预期创建,Fiddler告诉我它存在。但默认页面仍无法加载。 我尝试了很多组合,但唯一让默认页面“成功”加载的方法是关闭IIS/web.config中的deny="?"规则。但这样所有用户都可以访问该页面,这不是我想要的。
服务器和我的机器上的Web.config:
<authentication mode="Forms">
<forms loginUrl="Login.aspx" name=".ASPXFORMSAUTH" defaultUrl="Default.aspx" cookieless="UseCookies" />
</authentication>
<authorization>
<deny users="?" />
</authorization>
具有讽刺意味的是,当我在Visual Studio中调试网站时,所有这些都很好运行,但在部署后就无法工作了。web.config与网站一起部署。
我不知道为什么这仍然不起作用。 有人知道吗?