【发布时间】:2015-03-19 19:16:48
【问题描述】:
我们使用 MVC 控制器中的 Claims 主体属性。问题是,如果未经授权的用户访问该站点,他会得到 500 而不是 403,这对用户不是很友好(如果他得到 403,他知道他需要致电帮助台来订购正确的用户权限)。
确保安全异常导致 403 的正确方法是什么?我在谷歌搜索时看到了很多创造性的方法,但不是一个可靠的解决方案。
[ClaimsPrincipalPermission(SecurityAction.Demand, Resource = "Foo", Operation = "Post")]
【问题讨论】:
-
500 通常表示服务器出现错误。那是什么错误?请给我们看一些代码。我怀疑你使用
ClaimsPrincipal.Current- 这不是 MVC 应用程序中的最佳方式,因为这个值并不总是你想要的,尤其是对于未经身份验证的用户。 -
我们在我们的 MVCcontroller 方法上使用 ClaimsPrincipalPermissionAttribute,如果用户没有被授权,它会抛出一个 SecurityException,它最终会变成 500 而不是 403,这对用户不是很友好。用户不明白他需要获得额外的权限才能访问系统的上述功能
-
更新了一个例子
标签: asp.net-mvc asp.net-mvc-4 asp.net-identity wif claims-based-identity