c# - 根据权限从 Web API 返回属性?
问题描述
假设我有一个将从端点返回的模型:
public class Employee
{
public string Name { get; set; }
public string Title { get; set; }
public decimal Salary { get; set; }
}
我如何根据 API 密钥上的某些标准来做到这一点,我可能会或可能不会显示薪水?
[HttpGet]
public async Task<HttpResponseMessage> GetEmployee(int id)
{
if (permissions["api_key"].isAdmin = true) {
//include Salary
return Request.CreateResponse(HttpStatusCode.OK, await Employees.getEmployee(id));
} else {
//don't include salary
return Request.CreateResponse(HttpStatusCode.OK, await Employees.getEmployee(id));
}
}
解决方案
Employees.getEmployee(id, isAdmin)
a)仅当(isAdmin)时才添加参数并调用并填写薪水?
b) 添加到 Employee 类public bool ShouldSerializeSalary() => Salary!=0;
(或其他逻辑),参见
推荐阅读
- c++ - 如何在 Linux 上检测 CDRom 是否是 DVD
- spring-boot - Spring Boot Java 11 应用程序不会部署在谷歌云中
- unit-testing - 如何为速度模板编写单元测试?
- sql - 条件仅提取过去三个月内某个帐号中某人为某个类别拨打超过 2 次的记录
- android - Android Studio - ndk_build_command 在清理任务上失败
- excel - 在 Python 中迭代两个列表
- serialization - 对象指纹:序列化 + 不可触碰的遗留代码 + Getter-only 自动属性 = 走投无路?
- c# - MonthCalendar DateSelected 事件未触发,我需要在选择任何单个日期时执行代码
- php - php中单元测试的动态构造函数值
- python - 无法使用 CNN 训练手势 (ASL) 模型