MVC用戶登錄注銷(使用cookie+session)


第一次寫博客,使用MVC做一個簡易版的用戶登錄,注銷

1.先完成登錄的靜態頁面,如下

2.點擊登錄,后台處理方法,校驗成功之后,設置session的過期時間和[username]

if (name == "admin" && pwd == "123.com")
{
Session["username"] = name.ToString();
Session.Timeout = 2;
// HttpCookie cook = new HttpCookie("cookusername", name.ToString());
// Response.Cookies.Add(cook);
return true;
}
return false;

3.驗證成功之后,我們就完成了用戶登錄

4.用戶注銷后台代碼:

public bool Del()
{
try
{
//刪除全部session
// Session.Abandon();
//刪除一個session
Session["UserName"] = null;
Session.Remove("UserName");

return true;
}
catch (Exception)
{

return false;
}

}

5.驗證是否登錄,如果沒有登錄跳轉到登錄頁面

public ActionResult About()
{
HttpContextBase context = this.HttpContext;
if (Session["username"]== null)
{
return RedirectToAction("index");
}
string session = context.Session.SessionID;
ViewBag.Message ="sessionId:"+ session;

return View();
}

6.就此完成用戶的登錄注銷,項目代碼地址:

7.總結:

cookie與session進行驗證過程:session[username]=admin      微軟會自動的生成一個sessionID   也就是

 

微軟生成這個數據后   會自動得在瀏覽器端保存一個id='ujqcl1sxips5bdpjtbe0eeij'的值 ,key=“username”,value=“admin”的cookie,每當客戶端發送請求時,  瀏覽器 攜帶id(ujqcl1sxips5bdpjtbe0eeij)和key(username)和value(admin)  去服務器端做校驗,

如果存在id=‘ujqcl1sxips5bdpjtbe0eeij’  key=“username”,value=“admin”信息,並且過期時間還沒有到,則用戶存在;如果已到過期時間,或者客戶端,服務器端信息不匹配   則都需要重新登錄

 

 

這種方式只適合單一服務器,對於多台服務器,用戶session做不到共享,就會出現需要多次登錄的情況,這是需要共享session或者jwt

 

   

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM