我试图解决的问题对我来说似乎很简单:我的应用程序有一个站点范围的菜单,用户可以从中导航到各个区域。菜单项只是指向 ActionResult 方法的链接。我在操作上使用自定义 AuthorizeAttribute 来强制执行用户的授权角色。这很好用,因为如果用户没有适当的角色,它会阻止用户执行操作。但是,如果他们无权执行,我什至不显示导航到该操作的菜单选项。
所以,在最简单的层面上,我希望能够做这样的事情:
var isAuthorized = IsAuthorized("ControllerName", "ActionName", currentUser);
然后 IsAuthorized 方法将查看操作上的任何 AuthorizeAttributes,并评估给定用户是否能够执行它。
这种方法存在吗?假设我们在进行此评估时没有控制器实例。