ASP.NET MVC3角色和权限管理 – 具有运行时权限分配
|
ASP.NET MVC允许用户在设计时分配功能(即动作)的权限,如此。 [Authorize(Roles = "Administrator,ContentEditor")]
public ActionResult Foo()
{
return View();
}
要实际检查权限,可以在(Razor)视图中使用以下语句: @if (User.IsInRole("ContentEditor"))
{
<div>This will be visible only to users in the ContentEditor role.</div>
}
这种方法的问题是必须在设计时将所有权限设置为属性。 (属性使用DLL进行编译,所以我目前不知道在运行时没有机制应用属性(允许其他权限),例如[Authorize(Roles =“Administrator,ContentEditor”))。 在我们的用例中,客户端需要能够更改用户在部署后具有哪些权限。 例如,客户端可能希望允许ContentEditor角色中的用户编辑特定类型的某些内容。也许用户不允许编辑查找表值,但现在客户端希望允许用户,而不必向用户授予下一个更高角色的所有权限。相反,客户端只需要修改用户当前角色可用的权限。 什么选项可用于允许在属性之外定义MVC控制器/视图/动作的权限(如在数据库中),并在运行时进行评估和应用? 如果可能的话,我们非常希望像ASP.NET会员和角色提供者的功能那样密切地关注,以便我们可以继续利用它提供的其他好处。 提前感谢您的任何想法或见解。 解决方法
自定义授权属性是实现此目的的一种可能性: public class MyAuthorizeAttribute : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
Roles = ... go ahead and fetch those roles dynamically from wherever they are stored
return base.AuthorizeCore(httpContext);
}
}
接着: [MyAuthorize]
public ActionResult Foo()
{
return View();
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc-3 – 如何在VIEW MVC3 Razor中显示webforms页面
- asp.net-mvc-3 – 带有EF 4.1和EntityState.Modified的MVC3
- asp.net-mvc – 如何在RegularExpression中忽略大小写?
- .net – 回发数据和视图状态数据之间的区别是什么
- asp.net-mvc – ASP.NET MVC 5:使用站点模板无限重定向到登
- asp.net-mvc – 使用OWIN的Google身份验证Oauth在MVC5中没有
- entity-framework – 在Junction表上使用EF Core ThenInclu
- ASP.NET:开始%%的#是什么意思?
- asp.net-mvc-3 – 允许没有找到Html属性[AllowHtml]
- ASP.NET MVC jquery自动填充值和文本字段
- .net – 如何动态清除用户控件中的所有控件?
- asp.net-mvc – 如何将ASP.Net MVC路径段中的1或
- asp.net-mvc – 在控制器中创建操作链接
- asp.net-mvc – 如何强制Razor使Editorfor输入fl
- ASP.Net:动态添加到占位符的用户控件无法检索值
- asp.net-core – 更改Asp.net Core中静态文件的标
- asp.net-mvc – ASP.net MVC DropDownList预选项
- asp.net-mvc – 我应该在Web应用程序中记录哪些信
- entity-framework – 未找到可执行文件匹配命令“
- 我可以在.NET中设置IIS MIME类型吗?
