IIS7&表格认证

时间:2012-02-14 14:31:07

标签: asp.net iis forms-authentication

我整天都在苦苦挣扎。我正在尝试将表单身份验证添加到我的asp.net网站。

我已禁用匿名,Windows,ASP.NET模拟并启用了表单身份验证。

我创建了一个Login.aspx页面,并有一个Default.aspx页面。 Default.aspx是默认文档。

我已添加到web.config:

<authentication mode="Forms"/>

这是我遇到的行为:

1)使用http:\ localhost \进行测试时,我在应用程序根目录上收到401.2错误。

2)使用http:\ localhost \ Default.aspx进行测试时,我在Login.aspx上出现401.2错误,因此重定向正在发生,但Login.aspx发出了错误。

所以看来我甚至无法访问网站上的任何页面,甚至Default.aspx&amp; login.aspx的。

但我找不到解决办法,我甚至尝试过:

  <location path="Default.aspx">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>

  <location path="Login.aspx">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>

但这似乎没有任何改变。

我也试过

<authentication mode="Forms">
  <forms loginUrl="Login.aspx" />
</authentication>

但这也没有任何不同。

此外,如果我恢复为匿名或Windows身份验证,则默认文档重定向可以正常工作。

我在Vista Business上的IIS7上使用asp.net 3.5。

请帮忙!

2 个答案:

答案 0 :(得分:2)

在IIS中的应用程序上禁用Windows身份验证,匿名用户等将更改有关网站标识的设置,而不是用户成员资格设置!

如果要为您的用户在您的网站上启用身份验证,您甚至可以启用匿名用户和Windows身份验证,因此IIS将接受来自Web服务器的所有请求。 然后,您可以使用表单身份验证(使用登录页面中的SignIn方法实现)来授予访问者使用asp.net成员资格仅访问网站的某些部分的权限。 有关表单身份验证的Have a look at this article和有关IIS上的授权问题的this one

答案 1 :(得分:0)

允许匿名访问IIS中的文件夹,并在web.config中编写下面提到的语句:

                  

<authorization>
  <deny users="?" />
</authorization>

添加这些语句后,无论何时尝试导航到经过身份验证的页面,都会被重定向到登录页面。

在登录页面,您只需在成功登录后生成身份验证票证,即可浏览经过身份验证的页面。