我整天都在苦苦挣扎。我正在尝试将表单身份验证添加到我的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。
请帮忙!
答案 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>
添加这些语句后,无论何时尝试导航到经过身份验证的页面,都会被重定向到登录页面。
在登录页面,您只需在成功登录后生成身份验证票证,即可浏览经过身份验证的页面。