Se souvenir de moi fonctionnalité dans ASP.NET Formulaire d'Authentification ne fonctionne pas

Je suis en utilisant ASP.NET l'authentification de formulaires pour l'enregistrement des utilisateurs dans un site web que nous développons.

Partie de la fonctionnalité "se Souvenir de moi" case à cocher qui se souvient de l'utilisateur pour un mois s'il le vérifier.

Le code pour l'enregistrement de l'utilisateur en est comme suit:

public static void Login(HttpResponse response, string username,
  bool rememberMeChecked)
{
  FormsAuthentication.Initialize();
  FormsAuthenticationTicket tkt = new FormsAuthenticationTicket(1, username, DateTime.Now,
    DateTime.Now.AddMinutes(30), rememberMeChecked,
    FormsAuthentication.FormsCookiePath);
  HttpCookie ck = new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(tkt));
  ck.Path = FormsAuthentication.FormsCookiePath;

  if (rememberMe)
    ck.Expires = DateTime.Now.AddMonths(1);

  response.Cookies.Add(ck);
}

La section pertinente du site web.config est: est-ce

<authentication mode="Forms">
  <forms loginUrl="Home.aspx" defaultUrl="~/" slidingExpiration="true" timeout="43200" />
</authentication>

Ce connecte l'utilisateur bien, mais les journaux après une demi-heure si ils n'utilisent pas le site, de même que la persistance de la propriété (rememberMeChecked) est définie sur true et si c'est vrai, le cookie expire après un mois. Il y a une chose qui me manque ici?

Merci d'avance,
F

Je ne sais pas si cela ferait une différence dans ce cas, cependant, ce qui est erroné avec l'aide de FormsAuthentication.RedirectFromLoginPage(userName, rememberMe)? Est-il nécessaire de créer manuellement le billet? Si vous spécifiez le délai d'attente dans la config, alors vous n'avez pas besoin de la main-d'artisanat dans le code, autant que je sache. Aussi, où est rememberMe être ensemble?

OriginalL'auteur Michali | 2011-01-31