mvc3中的条件(基于授权)标记

时间:2011-07-14 11:23:03

标签: c# asp.net asp.net-mvc-3 authentication

我正在寻找一种使用授权有条件地显示某些标记的方法,而不仅仅是User.Identity.IsAuthenticated。

由于我在AD中使用Windows身份验证,我希望能够直接在标记中执行类似授权属性的操作,例如:

@[Authorize {Roles = @"domain\Admin"}]
<div> admin markup</div>

我尝试使用

@if(User.IsInRole(@"domain\Admin"))

但这也不起作用。有人可以给我一个指向最佳方式的指针吗?

1 个答案:

答案 0 :(得分:3)

您是否配置了RoleManager以支持您的AD角色?请注意,这与身份验证是分开的。

在web.config中,roleManager中应该有一个system.web元素,允许您配置AD角色的使用。具体而言,您需要启用管理器(enabled="true")并创建/指定提供程序。

请注意,第一种方法(AuthorizeAttribute)只能应用于控制器和方法,而不能应用于标记中。但是,一旦正确配置了所有内容,第二种方法(User.IsInRole())应该适合您。