標籤:表示 控制 授權 作用 執行 控制器 control use err
一.身分識別驗證
1.定義:
身分識別驗證是從使用者出擷取表示憑據(如使用者名稱和密碼)並聽過某些授權機構驗證哪些憑據的過程.
配置節中儲存了登入使用者的資訊,這種方式可以適用於小型的應用程式,實際項目中是將登入使用者資訊儲存在關係型資料庫中,例如SQL Server
2.身分識別驗證思路:
a.使用者模型,控制器登陸方法,登入視圖
登陸成功,記錄會話.然後使用者訪問其它的方法,每個方法執行前都應該判斷會話
問題:太麻煩
b.Controller父類實現了IActionFilter方法:
在執行每個方法之前OnActionExecuting方法被調用
c.重寫OnActionExecuting方法:
3.身分識別驗證的做法:2種方法:
方法1:
登入成功,記錄會話訪問[其它任何方法]前都要判斷會話
登入正確的做法(不這樣做,缺陷:繞過登入的問題,登入根本起不到安全驗證的作用!
在4個方法中不檢查會話,其他方法(執行前)都要檢查會話.缺點,太麻煩?
方法2:
登入成功,記錄會話,僅在OnActionExecuting中判斷會話即可
具體步驟細節如下
步驟1:
建立一個MyController控制器,繼承Controller控制器
重寫OnActionExecutin
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
object obj = Session["my"];
if (obj == null)
{
filterContext.Result=
Redirec("/Users/Login");
}
}
步驟2:
除去Users控制器(Login,register)不能繼承MyController,
其他的控制器的基類都修改成MyController
過濾器:電腦領域比喻的叫法
作用:在執行其他方法之前首先要執行的
在執行其他任務之前首先要執行的
010.MVC身分識別驗證