Gra*_*ler 1 asp.net security authorization asp.net-mvc-3
我已经静态地允许使用带有角色的标准Authorize属性来访问控制器/操作方法.我使用默认的ASP.Net成员资格提供程序.
我们的一位客户希望获得更细粒度的访问控制.他们希望能够动态分配哪些角色可以访问哪些控制器/操作等.我已经看到答案说实现CustomAuthorize属性.
只是想知道是否有任何工具包等.这似乎是一个合理的标准功能.我想这样的事情http://kbochevski.blogspot.com/2009/11/mvc-custom-authorization.html
小智 6
尝试这样的自定义属性:
public class DynamicAuthorizeAttribute : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
var controllerName = httpContext.Request.RequestContext.RouteData.Values["controller"];
var actionName = httpContext.Request.RequestContext.RouteData.Values["action"];
// Get this string (roles) from a database or somewhere dynamic using the controllerName and actionName
Roles = "Role1,Role2,Role3"; // i.e. GetRolesFromDatabase(controllerName, actionName);
return base.AuthorizeCore(httpContext);
}
}
Run Code Online (Sandbox Code Playgroud)
只需将此属性放在需要授权的任何操作方法上,并使用控制器名称和操作名称在数据库中查找以获取所需的角色.
希望这可以帮助,
标记
归档时间: |
|
查看次数: |
527 次 |
最近记录: |