基于MVC和控制的授权

时间:2014-12-25 08:30:08

标签: asp.net-mvc-4 authorization

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

考虑我的输入控件名为daily wages(文本框)。 userRoleOne是一个应该看到此字段的用户角色,其他用户角色不应该看到此字段。这样做的最佳做法是什么?

1 个答案:

答案 0 :(得分:0)

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

@if (Context.User.IsInRole("userRoleOne"))
{
    Html.TextBox("dailyWages", "")
}

它应该在没有ActiveDirectoryMembershipProvider和Windows身份验证的任何其他代码的情况下工作,但可能无法使用表单身份验证和其他成员资格。

在上一种情况下,您应该使用GenericPrincipal Application_AuthenticateRequest方法手动创建Global.asax类的对象(请参阅details)。