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(); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Hangfire在ASP.NET CORE中的简单实现
- asp.net-mvc – 从传递给局部视图的嵌套复杂对象获取值
- .net-core – 如何在Asp.net核心中使用Akka.Net 1.3.0配置的
- 如何在asp.net和C#中实现登录会话
- asp.net-mvc – 从部分视图问题返回模型
- asp.net – SSRS ReportViewer Web Control – 渲染为异步时
- 使用ASP.NET Core进行Ws-Federation身份验证
- asp.net-mvc – 在空项目中缺少类型Mono.Web.Util.RoleMana
- AutoMapper系列:介绍、使用
- 缺少版本和工具:.NET Core,Core Tools,dotnet Core CLI,
- 为什么NuPack生成的NinjectMVC3.cs无法编译? (或
- asp-classic – 使用TFS 2010“构建”经典ASP
- asp.net – WCF安全 – 我不明白的列表
- ASP.NET core Web中使用appsettings.json配置文件
- 将ASP.NET从1.1升级到2.0 – 任何问题?
- asp.net – 访问offsetParent时是否存在IE 6/7“
- asp.net-mvc – MVC控制器操作参数为null
- asp.net-mvc-4 – 如何让你的MVC控制器DRY为Edit
- asp.net – 更新查询似乎删除了备注字段
- asp.net-mvc-3 – 最初未显示Telerik MVC Grid C