我有一个包含一些标签,并选择一个的时候,它的内容是通过一个AJAX调用服务器检索页面的网站。每个选项卡都通过不同的控制器加载。例如,我有一个包含产品和客户端选项卡的客户页面。限制访问控制方法在ASP.NET MVC 3
该网站拥有不同类型的用户,具有不同的权限级别。
我想要做的就是保护控制器,并且只有当登录用户有权限时才显示选项卡的内容。所以如果没有权限的用户输入控制器的url,它应该重定向到登录页面。 url是这样的:
http://localhost/MyApp/Products/1
其中1是产品的数据库ID。
我可以实现这2个解决方案,但他们都不是最优的:
使用ChildOnlyAction属性。我将使用此属性标记产品控制器的操作,并使用RenderAction呈现主视图中的选项卡。但这意味着页面上的所有选项卡都必须呈现,这并不是最佳选择,因为我只想在用户单击选项卡时加载数据。
在每次请求的产品控制,我会使用记录的ID,以检查用户是否有权访问它使数据库查询。但是这意味着对于每个请求我都需要运行额外的查询。
我想知道是否有更好的方法来做到这一点。
+1 – Romias