我有一个 asp.net mvc3 应用程序,每个登录的用户都可以访问一些特定的数据。
例如,“用户 A”可以访问“客户端 1”但不能访问“客户端 2”,而“用户 B”可以访问“客户端 2”但不能访问“客户端 1”。
如果用户 a 访问http://myApp/Clients/2
,我们将抛出一个自定义异常,例如ConfidentialityException
。
由此,我们可以将其困在global.asax
Application_Error
. 但从那时起,我想知道最佳做法是什么:
- 返回带有 http 403 代码的错误页面(如何?)
- 只是返回一个错误页面。
- 让它崩溃。
- 其他建议?
我首选的 solition 是第一个(带有 401 的错误页面),但我看不到如何从 Application_Error 设置 http 代码。
编辑
我将 401 状态码更改为 403,因为这不是身份验证错误,而是机密性。根据 w3c , 403 似乎更合适。