国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

asp.net mvc中Forms身份驗證身份驗證流程

2024-07-10 12:48:57
字體:
來源:轉載
供稿:網友

驗證流程

一、用戶登錄

1、驗證表單:ModelState.IsValid
2、驗證用戶名和密碼:通過查詢數據庫驗證
3、如果用戶名和密碼正確,則在客戶端保存Cookie以保存用戶登錄狀態:SetAuthCookie
    1):從數據庫中查出用戶名和一些必要的信息,并把額外信息保存到UserData中
 2):把用戶名和UserData保存到 FormsAuthenticationTicket 票據中
 3):對票據進行加密 Encrypt
 4):將加密后的票據保存到Cookie發送到客戶端
4、跳轉到登錄前的頁面
5、如果登錄失敗,返回當前視圖

二、驗證登錄

1、在Global中注冊PostAuthenticateRequest事件函數,用于解析客戶端發過來的Cookie數據
 1):通過 HttpContext.Current.User.Identity 判斷用戶是否登錄(FormsIdentity,IsAuthenticated,AuthenticationType)
 2):從HttpContext 的Request的Cookie中解析出Value,解密得到 FormsAuthenticationTicket 得到UserData
2、角色驗證
 1):在Action加入 Authorize特性,可以進行角色驗證
 2):在 HttpContext.Current.User 的 IsInRole 方法進行角色認證(需要重寫)

一、用戶登錄

1、設置web.config

設置重定向登錄頁面

<system.web><authentication mode="Forms">  <forms name="loginName" loginUrl="/UserInfo/login" cookieless="UseCookies" path="/" protection="All" timeout="30"></forms></authentication></system.web>

注釋掉

<modules>  <!--<remove name="FormsAuthentication" />--></modules>

2、登陸的驗證中控制器

控制器中加“[Authorize]”修飾的方法拒絕匿名。

 public class UserInfoController : Controller //控制器 { //身份驗證過濾器  [Authorize]  public ActionResult Index()  {   return View();  } }

控制器中登錄

   /// <summary>  /// 用戶登錄  /// </summary>  /// <returns></returns>  public ActionResult login()  {   return View();  }    [HttpPost]  public ActionResult login(loginModels login) {   if (ModelState.IsValid)   {    var model = db.Admininfo.FirstOrDefault(a => a.AdminAccount == login.AdminAccount && a.AdminPwd == login.AdminPwd);    if (model != null)    {     //存入票據(用戶登錄的時候去存信息,如果有信息直接去登錄)     var dtoModel = new Users     {      id = model.id,      AdminPwd = model.AdminPwd,      AdminAccount=model.AdminAccount     };     //調用     SetAuthCookie(dtoModel);     //獲取登錄地址     var returnUrl = Request["ReturnUrl"];     //判斷登錄地址是不是空值     if (!string.IsNullOrWhiteSpace(returnUrl))     {            return Redirect(returnUrl);     }     else     {      //return RedirectiToAction      return Redirect("/Home/index");     }    }    else    {     ModelState.AddModelError("", "賬號密碼不對");     return View(login);    }   }   else   {    ModelState.AddModelError("", "輸入的信息有誤");    return View(login);   }            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 环江| 钦州市| 威海市| 于田县| 嘉禾县| 海伦市| 中阳县| 哈尔滨市| 红桥区| 从江县| 南涧| 巴彦县| 屏东县| 老河口市| 西昌市| 辛集市| 武冈市| 许昌县| 海兴县| 罗甸县| 陈巴尔虎旗| 紫阳县| 阳原县| 光泽县| 石泉县| 贵州省| 高平市| 泌阳县| 获嘉县| 田林县| 赤水市| 嘉定区| 宜兰市| 额敏县| 巍山| 集贤县| 深圳市| 北辰区| 象山县| 武平县| 象山县|