使用简单的表单身份验证,我有一个非常简单的网站的问题。我有一个单页Default.aspx和一个Login.aspx。
Default.aspx受<deny users="?" />
保护
Login.aspx调用
FormsAuthentication.RedirectFromLoginPage( tbUserName.Text, chPersist.Checked );
我用Fiddler检查重定向是否有效。确实如此。但默认页面总是重定向回登录页面(HTTP / 1.1 302 Found)。 cookie按预期创建,Fiddler告诉我它就在那里。但它只是不会加载默认页面。
我尝试了这么多组合,但是唯一能使“默认页面”成功加载的东西就是当我关闭deny =“?”时IIS / web.config中的规则。但是所有用户都可以访问该页面,这不是我想要的。
服务器和我的机器上的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随站点一起部署。
我不知道为什么这仍然不起作用。任何人?
尝试回收应用程序池..然后重新启动IIS服务器。
您可以检查,IIS已激活该站点的表单身份验证。如果这被取消,则在尝试通过表单进行身份验证时可能会导致奇怪的行为。