【问题标题】:Filter api model properties by user permission level in ASP.NET Core在 ASP.NET Core 中按用户权限级别过滤 api 模型属性
【发布时间】:2017-11-30 22:34:59
【问题描述】:

我们要根据用户权限级别过滤/隐藏/清除特定的api模型属性。 模型本身不会有所不同。只是没有回报。

我在网上找到了很多不同的想法:

  • switch(userrole) 并调用不同的逻辑方法
  • 将用户角色传递给逻辑
  • 反射以清除响应中的属性(我讨厌这个想法)
  • 将用户重定向到不同操作的中间件

为特定角色过滤 api 模型属性的推荐方法是什么?

【问题讨论】:

  • 创建具有所需属性的视图模型(针对每个用户角色)并返回。

标签: asp.net asp.net-core


【解决方案1】:

很难就您提供的内容给出任何真实的细节,但总的来说,我认为这应该进入您的映射逻辑。利用视图模型/DTO 接受来自客户端请求的数据。然后将该数据从视图模型/DTO 映射到您的实体实例。在此过程中,您可以根据用户的角色/权限集来决定应该或不应该映射哪些属性。所有这些逻辑都可以分解为单独的类或类库。最终,客户端发送的内容并不重要。反正你也控制不了。您只需要确保他们最终无法设置他们无权“访问”的任何属性,而映射逻辑是一个很好的地方。

【讨论】:

    猜你喜欢
    • 2020-09-27
    • 1970-01-01
    • 2019-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-23
    • 2017-05-05
    • 1970-01-01
    相关资源
    最近更新 更多