authorization,意為授權,當使用者登入後,使用者已經有了自己的身份資訊(我是誰),但是使用者也分層級,有普通使用者,vip使用者甚至管理員,我們現在要求只能管理員可以登入,怎麼做呢?很簡單,先了解下怎麼配置authorization。
先在service中配置authorization:
services.addauthorization(config =>
);
addauthorization意為新增授權策略,如果沒有後面的action引數,採用的是預設策略,效果體現不出來,所以我們自己配置一下這個策略,然後我們可以在homecontroller中寫一些方法驗證它是否生效:
//authorize特性修飾的方法表示這個方法只有通過身份驗證和授權策略的使用者方可訪問
[authorize]
public iactionresult isauthenticated()
//要求角色為user的使用者才能訪問,下面那個同理。但因為我們採用的預設策略就是要role為user的所以效果與上面的一致
[authorize(roles ="user")]
public iactionresult isuser()
[authorize(roles ="admin")]
public iactionresult isadmin()
我們為這三個方法分別建立檢視來測試下,發現這個角色的要求確實生效了。
上面的制定的授權策略是預設策略,假如我有一些方法是要特殊的使用者才能訪問,其他的方法還是普通使用者訪問,換句話說,我想專門為一些方法制定乙個策略,怎麼辦呢,那麼我們就加入乙個自定義策略即可,將之前的addauthorization方法改造一下:
services.addauthorization(config =>
);
這樣,我們就有了兩個策略,乙個預設策略,乙個自定義策略。可以分別再寫兩個測試方法測試下:
[authorize]
public iactionresult defaultpolicy()
//可以看到訪問這個方法時是access deny的,因為我們登入的user沒有gender這個claim
[authorize(policy = "mypolicy")]
public iactionresult mypolicy()
Nagios 探索之 總結
轉眼,乙個月的時間匆匆逝去,對服務監控之神 nagios的研究也告一段落了。在經過了若干次重新安裝配置之後,我所架設的nagios監控平台已經穩定的執行了一段時間,目前其監控著四十幾台主機,一百餘個服務的運 況。在此期間,我得到了很多朋友的幫助,我在這裡要感謝他們。特別的,我要感謝幫助完成統計工作的...
Python探索之SocketServer詳解
socketserver,網路通訊伺服器,是python標準庫中的乙個模組,其作用是建立網路伺服器。socketserver模組定義了一些類來處理諸如tcp udp unix流和unix資料報之上的同步網路請求。socketserver模組處理網路請求的功能,可以通過兩個主要的類來實現 乙個是伺服器...
Groovy探索之Builder 二
groovy探索之builder 二 在前面的部分,我以 markupbuilder為例介紹了如何使用builder,通過它,我們可以看過了dsl程式設計的威力。當然了,既然看到了builder功能的強大,我們就忍不住想自己建立乙個builder,來構建我們自己的dsl程式設計。在groovy語言中...