首先,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();}