2015-09-03 67 views
0

只看到默認的代碼來驗證用戶:簡單成員資格提供的AccountController和身份驗證cookie的ASP.Net MVC 4

[HttpPost] 
[AllowAnonymous] 
[ValidateAntiForgeryToken] 
public ActionResult Login(LoginModel model, string returnUrl) { 
    if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe)) { 
    return RedirectToLocal(returnUrl); 
    } 

    // If we got this far, something failed, redisplay form 
    ModelState.AddModelError("", "The user name or password provided is incorrect."); 
    return View(model); 
} 

當用戶通過驗證,然後用戶被重定向到一個視圖,但沒有auth cookie在用戶下降因爲我沒有發現任何代碼。

所以告訴我WebSecurity.Login()函數在內部執行還是需要編寫代碼在用戶PC中刪除auth cookie

回答

1

WebSecurity.Login()用這個名字添加一個會話Cookie:.ASPXAUTH。

從MSDN網站:(https://msdn.microsoft.com/en-us/library/webmatrix.webdata.websecurity.login(v=vs.111).aspx

public static bool Login(
    string userName, 
    string password, 
    bool persistCookie 
) 

的userName 類型:System 的用戶名。

密碼 類型:System.String 密碼。

persistCookie 類型:System.Boolean (可選)真指定cookie中的認證令牌應該超越目前的會議上堅持;否則爲false。 默認值爲false

當用戶登錄時,ASP.NET在cookie中設置一個身份驗證令牌,讓ASP.NET知道用戶已經登錄的後續請求。如果persistCookie爲false,則該令牌僅在用戶關閉瀏覽器。

你不需要添加任何東西。

+0

如果有人需要增加cookie時間,那麼用WebSecurity.Login()函數怎麼可能? – Mou

+1

然後,您需要更改web.config文件中的sessionState超時。 <結構> <的sessionState超時= 「value_in_minutes」> 因爲會話cookie .ASPXAUTH,具有相同的持續時間作爲服務器的一個會話。 –

相關問題