【发布时间】:2012-03-05 22:11:58
【问题描述】:
我整天都在为此苦苦挣扎。我正在尝试向我的 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 和 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。
请帮忙!
【问题讨论】:
-
给我们您用来声明身份验证是“表单”的代码块。
-
已编辑以显示身份验证部分。
-
文件夹/文件的 Windows 文件权限是否可能不允许提供文件?这些文件有哪些用户权限?
-
不,我不这么认为,因为它适用于匿名身份验证。我也尝试让每个人都完全控制,但这没有帮助。
-
通过禁用匿名身份验证,您需要为应用程序提供一个在其中运行的有效用户。否则您将无法访问它,因为 IIS 阻止了它。如下所述,网络服务器身份验证和 Asp.net 成员身份是两个不同的东西。您可以启用匿名身份验证并仍然使用表单身份验证。尝试在 Visual Studio 的网络服务器中运行您的网站。如果没有 IIS 的问题,它可以正常工作。
标签: asp.net iis forms-authentication