用于检查角色的ASP.NET / MVC.NET标记(相当于声明属性PrincipalPermission)

时间:2010-04-05 18:32:58

标签: asp.net asp.net-mvc

我在MVC.NET控制器中使用声明性角色,我有一个自定义成员资格&角色提供者。

这很好用:

 [Authorize(Roles = "ADMIN")]

此外,我有一个所有控制器派生自的基础MVC.NET CustomController类,它有一个“currentUser”属性,可以根据需要从会话中自动获取,因此所有控制器代码只引用“currentUser”和我不会担心会话,httpcontext等。我已经正确地实现了成员资格提供程序,因为它适用于刚刚处理提供程序的框架的其他部分,但直到现在我还没有尝试访问“用户”委托人一个观点。

视图页面中检查角色的最简单语法是什么?我知道我可以使用帮助器来生成局部视图,但我不想在这里,我想在某些角色检查中明确地包装页面的某些部分。

这样的事情:

<% if(currentUser.IsInRole("ADMIN") { %>
...
<% } %>

感谢。

1 个答案:

答案 0 :(得分:1)

最简单的方法是完成您正在做的事情,在上下文中检查当前用户。您可以通过ViewPage的User媒体资源访问当前HttpContext上的ViewContext主体。

var currentUser = this.ViewContext.HttpContext.User;