【发布时间】:2014-02-19 11:34:57
【问题描述】:
情况:我正在使用 MVC 的 AuthorizeAttribute 保护我的操作。我有几个 UI 组件,其中包含 INSERT、DELETE 等功能,如果应用程序的最终用户点击例如一个按钮。只有那些允许他执行的按钮对用户是可见的。为了避免至少两次为用户操作(按钮和控制器操作)放置权限,我正在考虑按钮可以确定控制器的 AuthorizeAttribute 和/或操作以控制其可见性。常规:应用程序有多个区域和控制器。
我找到了这个答案 (Accessing the list of Controllers/Actions in an ASP.NET MVC application),它表明 ReflectedControllerDescriptor 类可以提供帮助。
有没有办法根据 url 确定 mvc 应用程序中现有路由的区域、控制器和操作?
一个例子:
我有一个视图:/shop/products/all
此视图包含两个链接 - /商店/用户/推荐 - /system/users/loggedon
“recommend”和“loggedon”操作被 Authorize-attribute 修饰,这些链接只有在用户被允许执行时才可见。因此,如果可能的话,我想使用已经附加的属性。
【问题讨论】:
-
你想在视图中获取控制器、动作等名称吗?
-
是的 - View, PartialView, ... 但它可能是与视图控制器不同的控制器,因为不同的控制器可能负责存储数据。
-
检查我的答案,如果有帮助,请告诉我。
-
我删除了我的答案,因为它对您的要求没有任何意义。
标签: c# asp.net-mvc asp.net-mvc-4 routes