【问题标题】:Determine if controller action is authorized before calling it在调用之前确定控制器操作是否被授权
【发布时间】:2012-09-21 13:54:13
【问题描述】:

我要解决的问题对我来说似乎很简单:我的应用程序有一个站点范围的菜单,用户可以从中导航到各个区域。菜单项只是指向 ActionResult 方法的链接。我在操作上使用自定义 AuthorizeAttribute 来强制执行用户的授权角色。这很好用,因为如果用户没有适当的角色,它会阻止用户执行操作。但是,如果他们无权执行,我什至不显示导航到该操作的菜单选项。

所以,在最简单的层面上,我希望能够做这样的事情:

var isAuthorized = IsAuthorized("ControllerName", "ActionName", currentUser);

IsAuthorized 方法然后将查看操作上的任何 AuthorizeAttributes,并评估给定用户是否能够执行它。

这样的方法存在吗?假设我们在进行此评估时没有控制器实例。

【问题讨论】:

  • "a custom AuthorizeAttribute" - 你的意思是你自己写的,还是那个名字的内置的?
  • 是的,我自己写的一个,用于实现特定的授权要求。如“公共类 MyAuthorizeAttribute : AuthorizeAttribute”

标签: c# asp.net-mvc authorization


【解决方案1】:

第二次寻找解决方法的过程实际上得到了我正在寻找的结果。我将把这个问题留在这里,以防它导致其他人得到这个答案。

Create an authorized action link extension for ASP.NET MVC 3

该实现几乎完全使用了我正在寻找的语法,并且在实践中有效。

【讨论】:

  • 您应该将其标记为已回答,即使您是回答者。
猜你喜欢
  • 1970-01-01
  • 2015-06-21
  • 1970-01-01
  • 1970-01-01
  • 2022-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多