當前位置:編程學習大全網 - 源碼破解 - c#mvc 怎麽驗證登錄狀態

c#mvc 怎麽驗證登錄狀態

首先,mvc開發的是web應用,web應用中, 壹般使用cookie或者session來進行身份驗證。

參考:/xianggao/blog/395675 介紹了cookie和session的概念和作用,

簡單的說,Cookie是客戶端記錄的信息, Session是服務器記錄的信息, ?而身份驗證需要使用的就是Cookie或者Session。

所以,mvc做身份驗證(登錄),第壹步是驗證身份,然後頒發給用戶cookie或者session,

如:

//控制器代碼:

[HttpPost]

public?ActionResult?Login()?

{

//...登錄驗證,?

if(用戶名密碼正確)

{

Session["UserId"]?=?"100";?//這裏舉的是最簡單的例子,即記錄用戶的ID

}

}

那麽記錄了之後, 服務器就知道,這個人是ID = “100"的那個用戶了,然後就是驗證了。

在MVC中,壹般使用FIlter來控制用戶的權限,即某個Action需要怎麽樣的權限、或者指定某個用戶才能進行訪問,否則返回壹個錯誤。

壹般會重寫過濾器, 在妳的MVC項目中新建壹個類:

public?class?MyAuthorizeAttribute?:?System.Web.Mvc.AuthorizeAttribute

//繼承mvc自帶的AuthorizeAttribute

{

protected?override?bool?AuthorizeCore(HttpContextBase?httpContext)

{

if(httpContext.Session["UserId"]!=null)

{

if(httpContext.Session["UserId"]=="100"}

{

return?true;

}

else

{

return?false;

}

}

return?false;

}

}

這個過濾器很簡單, 如果Session["UserId"] =="100"的時候,才會通過(返回true),其他都不允許通過。

最後壹步,就是給需要驗證身份的控制器加上這個過濾器即可。

[Authorize]?

//這個就是驗證身份的,?如果用戶沒有登錄,或者UserId不等於100,

系統會禁止他進入Index的界面

public?ActionResult?Index()

{

Return?View();

}

  • 上一篇:上海浦東全季酒店事件上海全季酒店發生
  • 下一篇:esp8266上電無反應
  • copyright 2024編程學習大全網