在加一個策略,要求cliam的值必須是123
第二個參數的類型
可變參數 ,能夠是這三種類型
變成一個集合也能夠
策略內置的幾種方式
html
RequireAssetion的參數是個Func,Func能夠理解爲一個匿名方法,匿名方法有個參數叫作Conext,全名叫作
全名叫作AuthorizationHanlderContext
p判斷當前用戶是否有個Edit Albums的cliam。若是有就返回true
上面和下面道具是同樣的 下面的能夠自定義寫一個代碼進行更復雜的裸機判斷
可變參數,手寫一些類,讓類實現這個接口。參數裏面能夠加上自定義的requirment類
https://www.cnblogs.com/cgzl/p/9282059.html
6分29秒
測試
繼承自:IAuthorizationRequirement。
屬性就是要暴露給外面使用
讓這個郵箱以126.com爲結尾的郵箱
Requirement有了,怎麼怎麼處理呢?須要一個handler
這裏加多個自定義的Requirement
新建類EmailHandler
實現接口:AuthorizationHandler泛型的類型就是 EmailHandler
查看類型是Email 的
把類別單獨獨立出來
若是知足要求了就返回成功,不然就是啥也沒幹。返回的不是失敗,是啥也沒幹
ui
再作一個無參的Requirement。意思是要找合格的用戶,具體怎麼合格要看handle了
建立handler,能夠編輯專輯的用戶就是合格的用戶
爭對這個requirement再寫一個handler
註冊一個requirement和兩個handler
如今這個策略裏面有兩個requirement,看看是兩個都知足呢仍是知足一個就能夠
給AlbumController加上屬性
能夠加多個測流,不過這裏我就先添加一個策略作測試
這一個策略裏面有兩個Requirement,看看最終是知足一個仍是兩個都要知足
咱們這個Email的Requirement裏面判斷是要Cliam帶Email的 當前裏面的用戶應該是都不知足的
可是確定有用戶知足第二個要求
測試下這個用戶 有Editg Albums這個Cliam
管理員角色下有這兩個用戶
這三個用戶都知足第二個Requirement的其中的一個handler。可是沒有人知足126郵箱的handler。雖然有126郵箱可是沒放在Claim裏面
這個用戶應該有權限的 ,。可是點進去以後,提示不行
也就是策略裏面的這兩條必需要同時知足,如今把上面Email的註釋掉
此次能夠訪問了
這個用戶知足Edit Albums這個要求
被拒絕了
這裏加個字母s
3d