MVC和基于控制的授权

问题描述:

是否可以在控制级别定义授权?如果是的话,最佳做法是什么?MVC和基于控制的授权

考虑我有输入控制命名为每日工资(文本框)。 userRoleOne是应该看到此字段的用户角色,其他用户角色不应该看到此字段。这样做的最佳做法是什么?

是的,这是可能的。的HttpContext当前实例是Razor的观点名字Context访问,所以你可以检查是用户角色,或不:

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

应该不会有与ActiveDirectoryMembershipProvider和Windows身份验证任何额外的代码,但可能无法正常工作表单身份验证和其他成员资格。

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