asp.net-core - 基于角色的 ASP.Net Web API 部分响应
问题描述
我知道这是一个老问题,但找不到 ASP.Net Core 的答案。我有基于角色的成员资格的 ASP.Net Core web api 应用程序。假设我们有一个来自数据库的实体,其中包含以下字段:
public class Transaction
{
public int Id { get; set;}
public string UserId { get; set; }
public string ManagerId { get; set; }
public decimal Amount { get; set; }
}
和控制器动作:
[Authorize(Roles = "Admin,Manager,RegularUser")]
public async Task<IActionResult> Transactions(TransactionsRequest request)
{
var response = await _repository.Find(request, User);
return Ok(response);
}
我的目标是根据角色查询并返回部分结果:
- 对于管理员角色,我需要返回所有字段的所有交易
- 对于经理角色,我需要返回当前经理的交易(基于 managerId),没有 UserId 字段
- 对于 RegularUser 角色,我需要返回当前用户的交易(基于 userId),没有 ManagerId 字段
我认为制作三个不同的动作很简单,每个动作都针对特定的角色。但是,如果我的角色数量会增加怎么办?
解决方案
推荐阅读
- javascript - JS:比较对象数组中的值并检测匹配值
- c++ - xtensor xt::where 索引相关函数的问题
- nosql - dynamodb 的数据建模,其中实体具有一对多和多对多关系
- kubernetes - Kubernetes Liveness and Readiness 是否检查 python 是否正在运行?
- javascript - 从 json 源中提取时不显示 FullCalendar 事件和资源
- html - 从具有相同类的 div 中获取文本并将它们显示在另一个 div 上
- java - netbeans“项目文件夹已存在且不为空”的问题
- python - 图像查看器应用程序:显示下一张图片的功能不起作用
- swift - 使用 XCUITest 时如何更改模拟器上的日期和时间
- jenkins - 如何使用 Jenkins 轮询 scm 以获取发布标签