Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 ASP.Net MVC 3中基于数据的权限/授权_Asp.net Mvc 3_Authorization_Entitlements - Fatal编程技术网

Asp.net mvc 3 ASP.Net MVC 3中基于数据的权限/授权

Asp.net mvc 3 ASP.Net MVC 3中基于数据的权限/授权,asp.net-mvc-3,authorization,entitlements,Asp.net Mvc 3,Authorization,Entitlements,在这方面,我的谷歌技能让我失望。我正在寻找在ASP.NETMVC(3)中实现基于数据的授权的“正确方法” 使用常规授权,只需了解用户和路线即可使用[Authorize]属性完成,但这似乎不适用于需要连接到数据存储的基于数据的授权 将支票插入操作方法的明显方法是否正确?而不知道“基于数据的权利”是什么。我相信自定义操作过滤器会满足您的需求。这使您可以通过拥有路由、用户等上下文来管理围绕授权所需的任何内容,从而提供更细粒度的控制。还提供了可重用性,因此不需要将if语句插入到动作方法中 是插入 检查

在这方面,我的谷歌技能让我失望。我正在寻找在ASP.NETMVC(3)中实现基于数据的授权的“正确方法”

使用常规授权,只需了解用户和路线即可使用
[Authorize]
属性完成,但这似乎不适用于需要连接到数据存储的基于数据的授权

将支票插入操作方法的明显方法是否正确?

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

是插入 检查行动方法 对吗

我就是这么做的

if (!userHasAuthorization)
   return view("Unauthorized");
这是迄今为止最简单的方法


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

,您可以创建一个从
[authorization]派生的自定义操作筛选器
使用数据存储检查授权的属性。

什么是“基于数据的授权?”是指“安全性”还是“授权?”请尝试查找“ASP.NET MVC中基于表的安全性”。@Robert-没错,我更新了标题以反映这一点我想他问的是:如何在不将自定义
AuthorizeAttribute
紧密耦合到数据库的情况下从数据库中查找授权值?这是我自己经常想知道的事情。自定义
AuthorizeAttribute
无法访问您的存储库,但是当您已经输入操作方法时,已经太晚了。然后我将使用我在这里提到的方法,自定义操作筛选器允许您在输入操作方法之前返回。有关如何执行此操作的任何详细信息-意思是,如何给MyAuthorize类一个
IDBConnection
的实例?