【发布时间】:2010-08-04 21:23:57
【问题描述】:
我已经设置了一个 asp.net 4.0 站点,如果有人试图访问授权区域,他们会被重定向到登录页面,并且状态设置为 403。
在我的本地计算机上,它重定向到具有 403 状态的登录页面。在 IIS 7 上,我得到一个令人讨厌的 403 禁止页面,而不是登录页面。
我怎样才能让它像在本地一样在 IIS 7 上工作?
【问题讨论】:
标签: asp.net asp.net-mvc iis-7
我已经设置了一个 asp.net 4.0 站点,如果有人试图访问授权区域,他们会被重定向到登录页面,并且状态设置为 403。
在我的本地计算机上,它重定向到具有 403 状态的登录页面。在 IIS 7 上,我得到一个令人讨厌的 403 禁止页面,而不是登录页面。
我怎样才能让它像在本地一样在 IIS 7 上工作?
【问题讨论】:
标签: asp.net asp.net-mvc iis-7
IIS 具有所有 HTTP 错误代码的默认页面。您可以在 IIS 中覆盖这些以重定向到您自己的页面。
IIS 还可以识别 web.config 文件中的 ASP.NET 标记,并在可用时首先使用它,因此您需要按如下方式设置自定义错误标记:
<customErrors defaultRedirect="defaultError.aspx" mode="On">
<error statusCode="403" redirect="my403page.aspx"/>
</customErrors>
希望这就是你所追求的。您还可以在 ASP.NET 中使用表单身份验证来实现此目的,它使用 cookie,但在您描述的场景中工作得很好,除非您特别需要将它们重定向到 403 页面。
【讨论】:
“讨厌”听起来您的意思是 IIS 正在抛出其默认的 403 错误消息页面。您可以在 IIS 中设置自定义 403 错误以将用户重定向到您的友好登录页面。
不一定是最好的设计,但根据您的解释,它可能会解决您的问题...
【讨论】:
我会检查以确保您的 web.config 文件中的 authentication settings 在两种环境中都相同。
编辑
您可能还遇到了匿名身份验证身份的问题。第一次将站点移动到 IIS7 时,我自己也遇到了这个问题。 MSDN 有a page 贯穿您可能的选择。
【讨论】: