使用表单身份验证,我可以从无法访问的页面返回404,而不是重定向到登录页面吗?

时间:2010-05-15 21:28:32

标签: asp.net forms-authentication

使用表单身份验证,如果用户无权访问内容,是否可以返回404,而不是将其重定向到某个位置?

我意识到我可以将它们发送到404-ish页面,或者重定向到不存在的登录页面,但我真的想从他们试图访问的页面返回404.

可能的?

3 个答案:

答案 0 :(得分:0)

当网站访问者请求返回404响应代码的页面时,您应该考虑使用推荐的导航选项的自定义404页面。所以我支持将用户发送到404-ish页面,其中包含搜索选项,其他导航链接以及用户已到达不存在的页面的通知

答案 1 :(得分:0)

最好是将它们发送到403(禁止访问)页面,但仍然看起来像您网站上的普通页面。

答案 2 :(得分:0)

你将很难捕捉403更少的重定向。

表单身份验证模块中存在一个长期存在的“错误”,它只是将“未授权”转储到注册的登录页面,并且200 OK。

因此,您不仅不能轻易捕获403 - 根据我的经验,403从未成为自定义错误页面的可行候选者。我不确定为什么MS已将其保留在默认的web.config中10年了。

在任何情况下,我都开发了一个可以解决此问题的模块,代码和详细信息可以在这里找到:http://www.codeproject.com/Articles/39062/Salient-Web-Security-AccessControlModule.aspx

本文的语言倾向于ajax类型的请求,但该模块的设计也考虑了基于webform的表单身份验证。

默认配置使您能够使用自定义错误页面处理403,该页面可以是生成404的简单处理程序,而后者又可以由您定义的任何自定义404页面处理(如果有)。 p>