【SSO】--單點登入之過濾器(filter)
在單點登入的探索中,用到一個知識點:過濾器(filter)。常見的幾種驗證:Authorization filters,驗證使用者是否有許可權訪問頁面;Action Filter,驗證使用者登入的時候是否使用者資訊存在;異常處理,比如session過期後可以返回登入頁面等等。
一、Filter包含什麼?
filter主要分為四種,遍佈於MVC,從頁面請求到授權,到訪問資源的各個階段。
Authorization filters:用於處理驗證處理相關的操作
Action filters:在Controller中Action處理的開始和結束做攔截操作
Result filters:在View呈現前和呈現後做處理
Exception filters:只要是新增了Exception Filter的請求中出現異常,都會被攔截。
下面是filter在MVC中的作用順序:
二、Filter的小demo
子系統登入許可權前,需要經過filter過濾,看是否能查到本地的cookie值進行驗證。如下是filter中程式碼:
public class MemberValidationAttribute:AuthorizeAttribute
{
public override void OnAuthorization(AuthorizationContext filterContext)
{
//讀取使用者登入許可權和資訊
var memberValidation = filterContext.HttpContext.Request.Cookies.Get("selfUserInfo");
//如果為空,就跳轉到登入頁;如果不為空,就返回一開始請求的頁面
if (memberValidation == null)
{
filterContext.Result=new RedirectToRouteResult(new RouteValueDictionary
(new {controller="Account",aciton="LogOn"
}));
return;
}
return;
}
}
子系統只需要在ActionResult上面打一個[MemberValidation]即可在登入的時候訪問filter。
[MemberValidation]
public ActionResult ChangePassword()
{
return View();
}
三、感受
一個知識只有給別人講出來,而且講懂了,才是真正的學會了。不要把所有的事情想的那麼難,去做就好了。
相關文章
- 初探單點登入 SSO
- SSO單點登入邏輯
- 【SSO】--實現單點登入研究過程總結
- 使用filter_var()過濾表單,實現laravel登入介面FilterLaravel
- Filter過濾器Filter過濾器
- vue入門 vue基礎之簡單使用4--過濾器(Filter)Vue過濾器Filter
- CAS單點登入(SSO)實戰(一)
- Casdoor + OAuth 實現單點登入 SSOOAuth
- CAS SSO單點登入框架學習框架
- 單點登入 SSO 的實現原理
- PHP 過濾器(Filter)PHP過濾器Filter
- Java Filter過濾器JavaFilter過濾器
- lucene Filter過濾器Filter過濾器
- HBase Filter 過濾器之 ValueFilter 詳解Filter過濾器
- OAuth2實現單點登入SSOOAuth
- 不務正業的前端之SSO(單點登入)實踐前端
- Filter過濾器的使用Filter過濾器
- JavaWeb 中 Filter過濾器JavaWebFilter過濾器
- 記一次 SSO 單點登入實現
- 單點登入SSO和Oauth2.0 文章3OAuth
- 整合spring cloud雲架構 - SSO單點登入之OAuth2.0登入認證SpringCloud架構OAuth
- Spring Cloud雲架構 - SSO單點登入之OAuth2.0登入認證(1)SpringCloud架構OAuth
- 探索C#之布隆過濾器(Bloom filter)C#過濾器OOMFilter
- 布隆過濾器(Bloom Filter)過濾器OOMFilter
- 布隆過濾器 Bloom Filter過濾器OOMFilter
- Bloom Filter 布隆過濾器OOMFilter過濾器
- servlet的過濾器filter類Servlet過濾器Filter
- angular內建過濾器-filterAngular過濾器Filter
- 整合spring cloud雲架構 - SSO單點登入之OAuth2.0登入認證(1)SpringCloud架構OAuth
- filter過濾Filter
- CAS SSO單點登入服務端環境搭建之框架深度分析服務端框架
- CAS SSO單點登入客戶端環境搭建之框架深度分析客戶端框架
- CAS實現單點登入SSO執行原理探究
- CAS SSO單點登入服務端環境搭建服務端
- CAS SSO單點登入客戶端環境搭建客戶端
- 實戰模擬│單點登入 SSO 的實現
- 談談SSO單點登入的設計實現
- 攔截器(Interceptor)與過濾器(Filter)過濾器Filter