Après avoir validé les informations d'identification utilisateur, vous pouvez avoir un code comme:
public void SignIn(string userName, bool createPersistentCookie)
{
int timeout = createPersistentCookie ? 43200 : 30; //43200 = 1 month
var ticket = new FormsAuthenticationTicket(userName, createPersistentCookie, timeout);
string encrypted = FormsAuthentication.Encrypt(ticket);
var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encrypted);
cookie.Expires = System.DateTime.Now.AddMinutes(timeout);
HttpContext.Current.Response.Cookies.Add(cookie);
}
Ainsi, votre code peut ressembler à ceci:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult LogOn(string userName, string passwd, bool rememberMe)
{
//ValidateLogOn is your code for validating user credentials
if (!ValidateLogOn(userName, passwd))
{
//Show error message, invalid login, etc.
//return View(someViewModelHere);
}
SignIn(userName, rememberMe);
return RedirectToAction("Home", "Index");
}
Dans les demandes ultérieures de l'utilisateur connecté, HttpContext.User .Identity.Name doit contenir le nom d'utilisateur de l'utilisateur connecté.
Cordialement!
Votre anglais est très bon :) – roryf
Si vous souhaitez personnaliser l'authentification ASP.NET, vous devez * utiliser * un fournisseur d'appartenances, même si vous devez tout écrire vous-même. http://blogs.teamb.com/craigstuntz/2009/09/09/38390/ –