ASP.Net MVC 3中基于数据的权利/授权

时间:2011-05-23 00:09:41

标签: asp.net-mvc-3 authorization entitlements

我的谷歌技能让我失望了。我正在寻找在ASP.Net MVC(3)中执行基于数据的权利的“正确方法”。

使用常规权利,只需要知道用户并且可以使用[Authorize]属性完成路由,但这似乎不适用于基于数据的权利b / c需要拥有连接到数据存储。

以正确的方式将检查插入动作方法的明显方法是什么?

3 个答案:

答案 0 :(得分:1)

  

是否插入一个明显的方法   检查动作方法   正确的方式?

这就是我的工作。

if (!userHasAuthorization)
   return view("Unauthorized");

这是迄今为止最简单的方法。

为确保您只需执行一次“userHasAuthorization”,您可以在存储库或服务层中放置一个检查授权的方法,并使用该方法代替布尔值userHasAuthorization

答案 1 :(得分:0)

不知道“基于数据的权利”是什么。我相信自定义动作过滤器可以满足您的需求。这使您可以通过路由,用户等的上下文管理授权周围所需的任何内容。提供更细粒度的控制。还为您提供了可重用性,因此您不需要将if语句插入到您的操作方法中。

http://msdn.microsoft.com/en-us/library/dd381609.aspx

答案 2 :(得分:0)

您可以创建从[Authorize]属性派生的自定义操作过滤器,该属性使用数据存储来检查授权。