.NET CORE - 基于角色的控制器选择

时间:2017-06-18 06:10:06

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

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

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

现在,我希望为我的某些端点设置一条路由,但根据用户登录的角色,选择并执行与admin或user相对应的控制器。

简单示例

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

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

如果管理员用户登录,我想拥有相同的url / v1 / member,但是有另一个返回

例如

{     “memberId”:int,     “名字:字符串,     “地址”:字符串,     “socialSecurityNumber”:字符串,     “privatInfo”:字符串,     “notforuser”:字符串 }

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

来自Jens的最好的问候

1 个答案:

答案 0 :(得分:1)

我要回答我自己的问题。

经过几个小时的研究,我终于找到了一个解决方案,我认为这个解决方案很有效。 这样我就定义了一个在MVC操作之前运行的中间件,而不是挂钩。它重写控制器的本地URL,然后它命中正确的控制器,它被分成不同的区域。它很棒。

祝你好运 Jens: - )