我有一个启用了 Forms Authentication 的 ASP.NET 应用程序,部署到 IIS 7 服务器。在 web.config 文件中,我添加了<location>
部分将默认文档(index.html/default.aspx)排除在身份验证之外。
如果我导航目录到http://mysite.com/default.aspx
,它按预期工作。它不要求身份验证。但是,如果我导航到http://mysite.com/
,它始终重定向到表单身份验证登录页面。
我在 IIS 中将默认文档设置为default.aspx
,但如果我不在 URL 中包含 default.aspx 页面,它将始终重定向。
如果用户仅导航到“根”站点,有什么方法可以阻止重定向到登录页面?
答案1
位置标记可以定位特定文件和子文件夹,但不能定位根目录(即 /)。一种选择是从所有允许和阻止的文件和文件夹开始。问题是,如果您忘记对新文件夹执行此操作,您的网站可能会受到攻击。
我相信您可以使用 URL 重写来处理默认文档并使用“重写”规则指向 default.aspx。例如,在 url 匹配中,使用“^$”,这完全没有任何意义。然后对于操作,重写为 /default.aspx。然后 .NET 将看到 /default.aspx 并且不会为您重定向。