然后切换到MVC客户端项目, 首先要把nationality这个scope添加到需要请求的scopes里面:
?
这样的话国籍就可以通过用户信息端点返回了....由于在MVC客户端里面需要识别出国籍这个Identity Claim, 所以需要做一下映射:
?
接下来就可以创建策略了, 还是在Startup的ConfigureServices里:
?...在这里也可以使用RequireRole()方法, 所以角色也可以参与进来.
最后在MVC的HomeController的AboutAction上面:
?
两种写法都是使用的策略(Policy)....使用策略的好处就是, 规则改变的时候, 无需修改Controller里面的代码, 只需要修改策略的配置即可.
下面测试一下MVC客户端:
?
登录的是Nick, 她符合策略:
?...所以handler的处理结果有三种情况: 明确的成功, 明确的失败, 没有明确指出是成功还是失败.
代码实现
前一部分保护的是MVC客户端, 那么这一部分就来保护API吧.