ASP.NET表单身份验证总是重定向回登录页面

3

我有一个使用简单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与网站一起部署。

我不知道为什么这仍然不起作用。 有人知道吗?

3个回答

0

尝试回收应用程序池,然后重新启动IIS服务器。


0
这可以是您的一个解决方案。 如果您在web.config文件中有以下代码行,请将其删除。
<system.webServer>
    <modules>
      <remove name="FormsAuthentication" />
    </modules>
  </system.webServer>

-1
您可以检查一下,是否已为该站点启用了IIS表单身份验证。如果未启用,则在尝试通过表单进行身份验证时可能会导致奇怪的行为。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接