2

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

对于只需要知道用户和路线的常规权利,可以使用该[Authorize]属性来完成,但这似乎不适用于需要与数据存储建立连接的基于数据的权利 b/c。

将检查插入操作方法的明显方法是否正确?

4

3 回答 3

1

将检查插入操作方法的明显方法是否正确?

我就是做这个的。

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

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

为了确保您只需要执行一次“userHasAuthorization”,您可以在存储库或服务层中放置一个方法来检查授权,并使用它来代替 boolean value userHasAuthorization

于 2011-05-23T00:20:26.090 回答
0

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

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

于 2011-05-23T00:19:52.543 回答
0

You could create a custom action filter derived from the [Authorize] attribute that uses the data store to check authorization.

于 2011-05-23T00:20:43.820 回答