asp net專案與開源單點登入專案CAS的結合
阿新 • • 發佈:2018-11-14
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow
也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!
這段時間搞的一個asp.net mvc專案,採用了單點登入。
這個單點登入就是CAS,一個開源的JAVA專案。當然,這並不影響ASP.NET專案結合它來進行登入。因為各自分工不同:單點登入(管它是不是單點)只負責賬戶校驗,而賬戶的登入資訊讀取,以及做何種進一步的處理,那是應用專案自己的事。
就好比,單點登入是寫字樓的安保。他在核實來訪者的來訪目的,進行來訪者身份登記,通過安檢之後,就放來訪者進這個大廈了。至於位於寫字樓裡的某家公司(應用專案)要如何接待這個來訪者,那是這家公司的事情。
總結如下:
1、採用 單點登入 + asp.net form認證
單點登入網站負責校驗;本專案負責儲存登入認證資訊。asp.net form認證為系統自帶
2、訪問本專案時,form認證首先檢查是否已認證(asp.net form認證本身機制),否的話跳到單點登入;是的話,由本專案進一步校驗。
3、本專案校驗,如果發現快取的登入資訊丟失,則根據form認證記錄的登入資訊(簡單),重新檢索登入資訊(詳細)並快取
4、無論單點登入、form認證還是本地快取,都依賴cookie。
5、form認證主要在web.config裡配置,程式碼裡也有應用。
6、本專案觸發登入資訊校驗的事件,在控制器的基類:AdminControllerBase.OnActionExecuting
web.config:
<!--Form認證設定Start--> <authentication mode="Forms"> <forms name =".ASPWeb" loginUrl="http://192.168.0.22:8080/cas/login" timeout="2880" defaultUrl="~/Home/Index" cookieless="UseCookies" slidingExpiration="true" enableCrossAppRedirects="true" path="/" /> </authentication> <authorization> <deny users="?" /> <allow users="*" /> </authorization>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
AdminControllerBase.OnActionExecuting:
protected override void OnActionExecuting(ActionExecutingContext filterContext){... if (this.LoginInfo == null) { LoginHelper.Instance.Login(); return; }...}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
LoginHelper.cs
public void Login(){ if (HttpContext.Current != null) { //是否已經form驗證? string username = HttpContext.Current.User.Identity.IsAuthenticated ? HttpContext.Current.User.Identity.Name : ""; if (!string.IsNullOrEmpty(username)) {//如果當前使用者已登入單點登入系統 var loginInfo = 。。。 if (loginInfo != null) { //快取loginInfo... } } else { Logout(); } }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
相關文章
asp.net forms認證