ASP.NET Forms身份验证始终重定向回“登录”页面

时间:2014-03-18 09:49:45

标签: c# asp.net iis-6 forms-authentication .net-4.5

我在使用简单的表单身份验证的简单网站时遇到了问题。 我有一个单页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随站点一起部署。

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

2 个答案:

答案 0 :(得分:0)

这可以作为您的一种解决方案。 如果您的web.config文件中包含以下代码行,请将其删除。

<system.webServer>
    <modules>
      <remove name="FormsAuthentication" />
    </modules>
  </system.webServer>

答案 1 :(得分:-1)

您可以检查IIS是否已激活该站点的表单身份验证。如果这被取消,则在尝试通过表单进行身份验证时可能会导致奇怪的行为。