我的谷歌技能让我失望了。我正在寻找在ASP.Net MVC(3)中执行基于数据的权利的“正确方法”。
使用常规权利,只需要知道用户并且可以使用[Authorize]
属性完成路由,但这似乎不适用于基于数据的权利b / c需要拥有连接到数据存储。
以正确的方式将检查插入动作方法的明显方法是什么?
答案 0 :(得分:1)
是否插入一个明显的方法 检查动作方法 正确的方式?
这就是我的工作。
if (!userHasAuthorization)
return view("Unauthorized");
这是迄今为止最简单的方法。
为确保您只需执行一次“userHasAuthorization”,您可以在存储库或服务层中放置一个检查授权的方法,并使用该方法代替布尔值userHasAuthorization
。
答案 1 :(得分:0)
不知道“基于数据的权利”是什么。我相信自定义动作过滤器可以满足您的需求。这使您可以通过路由,用户等的上下文管理授权周围所需的任何内容。提供更细粒度的控制。还为您提供了可重用性,因此您不需要将if语句插入到您的操作方法中。
答案 2 :(得分:0)
您可以创建从[Authorize]
属性派生的自定义操作过滤器,该属性使用数据存储来检查授权。