我对我的应用程序中的角色和规则感到有点困惑。我的一些用户将在我的网站上授权编辑数据。例如,我将创建这样的角色:
Asp.net mvc有一个名为Authorize的属性。我可以为控制器和操作指定角色。
[Authorize]
public class GeometryController : Controller
{
[Authorize(Roles = "VIEWER")]
public ActionResult Get(string id)
{
return Content("OK.");
}
[HttpGet]
[Authorize(Roles = "ADMIN, EDITOR")]
public ActionResult Edit(string id)
{
return Content("This operation is restricted for you.");
}
}
但我有另一个角色,一些用户可以按工作区编辑数据。例如
答案 0 :(得分:1)
我在代码中做了一些接近以下的事情。
public class CustomAuthorizeAttribute : AuthorizeAttribute
{
private readonly string _feature;
private readonly string _permission;
public BRTAuthorizeAttribute( string feature, string permission)
{
_feature = feature;
_permission = permission;
}
protected override bool IsAuthorized(HttpActionContext actionContext)
{
if (!base.IsAuthorized(actionContext))
{
return false;
}
if(// check access rights)
{
return true
}
return false;
}
}
然后用[CustomAuthorize("feature", "permission")]
装饰控制器,这应该是你需要的。