我在MVC.NET控制器中使用声明性角色,我有一个自定义成员资格&角色提供者。
这很好用:
[Authorize(Roles = "ADMIN")]
此外,我有一个所有控制器派生自的基础MVC.NET CustomController类,它有一个“currentUser”属性,可以根据需要从会话中自动获取,因此所有控制器代码只引用“currentUser”和我不会担心会话,httpcontext等。我已经正确地实现了成员资格提供程序,因为它适用于刚刚处理提供程序的框架的其他部分,但直到现在我还没有尝试访问“用户”委托人一个观点。
视图页面中检查角色的最简单语法是什么?我知道我可以使用帮助器来生成局部视图,但我不想在这里,我想在某些角色检查中明确地包装页面的某些部分。
这样的事情:
<% if(currentUser.IsInRole("ADMIN") { %>
...
<% } %>
感谢。
答案 0 :(得分:1)
最简单的方法是完成您正在做的事情,在上下文中检查当前用户。您可以通过ViewPage的User
媒体资源访问当前HttpContext
上的ViewContext
主体。
var currentUser = this.ViewContext.HttpContext.User;