2012-09-21 26 views
5

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

因此,在最简单的层次,我希望能够做这样的事情:

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

然后IsAuthorized方法会看在行动的任何AuthorizeAttributes,并评估特定用户是否会能够执行它。

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

+0

“一个自定义的'AuthorizeAttribute'” - 你是指你自己写过的一个,还是它的名字之一? –

+0

是的,我写了一个自己来实现特定的授权要求。如在“公共类MyAuthorizeAttribute:AuthorizeAttribute” – Dan

回答

5

第二遍寻找这种方法实际上导致我正在寻找。我会在这里留下这个问题,以防其他人回答这个问题。

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

实现使用几乎正是我一直在寻找的语法,并在实践工作。

+0

即使您是回答者,您也应该将其标记为已回答。 – labilbe

相关问题