【问题标题】:.NET CORE - Role based controller selection.NET CORE - 基于角色的控制器选择
【发布时间】:2017-06-18 06:10:06
【问题描述】:

我有一个简单的 API,目前只支持一个角色。

我想添加一个管理员角色和一个普通用户。我正在使用 JWT 进行身份验证,并且我的声明中有一个 roleName。

现在,我想为我的一些端点设置一个路由,但根据用户登录的角色,选择并执行对应于管理员或用户的控制器。

简单示例

作为普通用户: /v1/成员

返回 { "memberId": int, “名称:字符串, “地址”:字符串 }

如果管理员用户登录,我希望有相同的 url /v1/members,但有另一个返回

例如。

{ "memberId": int, “名称:字符串, “地址”:字符串, “社会安全号码”:字​​符串, “privatInfo”:字符串, “notforuser”:字符串 }

我知道我可以在一个控制器中执行此操作并切换角色,但这会使我的代码非常混乱,我不认为这是这样做的方法。

詹斯致以最诚挚的问候

【问题讨论】:

    标签: asp.net-web-api2 .net-core asp.net-web-api-routing


    【解决方案1】:

    我只是要回答我自己的问题。

    经过几个小时的研究,我终于找到了一个我认为效果很好的解决方案。 我没有像这样挂钩约定,而是定义了一个中间件,它在 MVC 操作之前运行。它重写控制器的本地 url,然后命中正确的控制器并将其分成单独的区域。它工作得很好。

    最好的问候 詹斯:-)

    【讨论】:

      猜你喜欢
      • 2019-07-05
      • 1970-01-01
      • 2011-03-18
      • 2021-08-10
      • 2010-09-11
      • 1970-01-01
      • 2020-06-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多