在应用程序中处理机密性

时间:2011-12-05 17:43:00

标签: c# asp.net-mvc-3 security global-asax confidentiality

我有一个asp.net mvc3应用程序,每个登录用户都可以访问某些特定数据。

例如,“用户A”可以访问“客户端1”但不能访问“客户端2”,而“用户B”可以访问“客户端2”而不能访问“客户端1”。

如果用户访问http://myApp/Clients/2,我们会抛出自定义异常,例如ConfidentialityException

由此,我们可以将其记录在global.asax Application_Error中。但从那时起,我想知道最佳做法是什么:

  • 使用http 403代码返回错误页面(如何?)
  • 刚刚返回错误页面。
  • 让它崩溃。
  • 其他建议?

我的preffered solition是第一个(带有401的错误页面),但是我没有看到如何从Application_Error设置http代码。

修改

我将401状态代码更改为403,因为它不是身份验证错误,而是机密性。 403似乎更合适according to w3c

1 个答案:

答案 0 :(得分:2)

要设置状态代码,您可以使用以下内容:

HttpContextBase.Response.StatusCode = 401;

但是,如果你正在使用MVC,你可以简单地将结果设置为HttpUnauthorizedResult,这将为你设置http状态代码。