c# - 从数据库授权属性角色
问题描述
我想从数据库中获取以下角色(管理员、IT、..),而无需在操作结果之上进行硬编码。请提供任何帮助。
[Authorize(Roles = "Admin,IT")]
public ActionResult Index()
{
}
解决方案
没有任何超级简单的方法可以做到这一点。您可以将[Authorize]
属性应用到控制器而不是操作,但它仍然是“硬编码”它。
您可以创建自定义 Authorization 属性 ([link]) 1,但您必须将 Routing 值以及允许访问该路由的角色存储在数据库中。然而,这只是将手动更改代码的负担转移到数据库中。
我真的不认为这真的应该被视为“硬编码”,因为您必须在某处声明您的授权,并且您仍然可以在不同的环境中拥有具有不同权限的不同用户。除了开发人员之外,还有谁最清楚哪些路线需要哪些授权?您是否想因为您在某处更改了路由而破坏您的访问控制?
推荐阅读
- ruby - Ruby 中的括号和 if 语句
- php - 我的网站随机重定向到 RSS 提要
- javascript - 织物。带有圆角和描边的图像
- java - 如何为所有 CompletableFuture 全局设置线程池
- ruby - 如何获取无头浏览器的用户代理
- r - 计算 R 中每组表中的频率
- python - Python Pandas 使用 .iloc 基于索引更新值
- html - 跨 div 的中心水平线
- unit-testing - 如何对 Flutter TextFormField 进行单元测试
- python - Charmap 编解码器无法在 python 中使用 gzipped 文件解码字节错误