authorization 授权是什么 ?
就是某个人必须符合某些条件才能做某些事儿
某个人指的是登入的 user
某些条件指的是 policy requirements
事儿指的是访问 controller, action, razor page, resource
整个过程是这样的,用户登入以后会获得许多 claim, 每个 claim 记入一个特性.
当要访问受保护的 action 时, 所有的 policy requirement handler 就会检测这个 user's claims 是否符合 requirement, 不符合就访问失败.
超级抽象的一个玩法啊.
常见的玩法有:
有个 X page 只有 18 岁以上或付费才可访问.
那么就做一个 policy 叫 18禁, requirement 就是 age > 18 或者付费.
那么 user's claims 里面就要记入 user age 和是否付费.
然后在 X page 上设置 authorization policy = 18禁.
上面这个是简单的玩法, 另一种思路是做一个叫能访问 18 禁页面的 claim.
然后在登入或 cookie 刷新的时候, 判断 user age > 18 或付费来添加这个 claim
2 个玩法的区别在于, claim 是存放用户特性(更权限无关)或者是直接放"用户能做什么"。