Asp.net mvc 4 MVC与基于控件的授权

Asp.net mvc 4 MVC与基于控件的授权,asp.net-mvc-4,authorization,Asp.net Mvc 4,Authorization,是否可以在控制级别定义授权?如果是,最佳做法是什么 假设我有一个名为“每日工资”文本框的输入控件。userRoleOne是应该看到此字段的用户角色,其他用户角色不应该看到此字段。这样做的最佳做法是什么?是的,这是可能的。HttpContext的当前实例在Razor的视图中可以通过名称上下文访问,因此您可以检查用户是否在角色中: @if (Context.User.IsInRole("userRoleOne")) { Html.TextBox("dailyWages", "") } 对于

是否可以在控制级别定义授权?如果是,最佳做法是什么


假设我有一个名为“每日工资”文本框的输入控件。userRoleOne是应该看到此字段的用户角色,其他用户角色不应该看到此字段。这样做的最佳做法是什么?

是的,这是可能的。HttpContext的当前实例在Razor的视图中可以通过名称上下文访问,因此您可以检查用户是否在角色中:

@if (Context.User.IsInRole("userRoleOne"))
{
    Html.TextBox("dailyWages", "")
}
对于ActiveDirectoryMembershipProvider和Windows身份验证,它应该可以在没有任何附加代码的情况下工作,但对于表单身份验证和其他成员身份,它可能无法工作

在最后一种情况下,您应该在Global.asax的Application_AuthenticateRequest方法中手动创建GenericPrincipal类的对象,请参见