我们为ASP.NET MVC3应用程序实现了基于REST的架构。 我们正在思考架构决策,为我们通过服务公开的合同实施自定义授权。
e.g。任何有效的经过身份验证的用户都可以访问合同的特定方法实现,并且可能希望访问其他用户的信息(通过存储过程从数据中获取项目列表),我们需要在收到此项目列表后进行检查此经过身份验证的用户是否具有访问此权限的适当权限权限检查基于繁重的业务逻辑,因此基于属性的授权在这种情况下可能没有用,因为只有在获取数据后我们才能决定访问权限检查。
请告知如何在我们的REST服务中实现此安全模型。
答案 0 :(得分:1)
由于基于属性的身份验证似乎不适合您,因此您需要确定它们是否适合您所需的角色:
HttpContext.Current.User.IsInRole()
之后你的控制器只返回一个
HttpUnauthorizedResult,这是一个ActionResult。 因此,检查您的业务逻辑,如果他们未经授权,则返回HttpUnauthorizedResult并完成。