1

J'ai des problèmes avec mon site Web pour déconnecter automatiquement l'utilisateur authentifié lorsque la session se termine (l'utilisateur ferme le navigateur).Membershipprovider: Déconnexion automatique à la fin de la session

C'est ce que j'ai dans mon web.config:

<authentication mode="Forms"> 
    <forms name="AuthCookie" protection="All" loginUrl="~/default.aspx" path="/" cookieless="UseCookies" timeout="2592000"/> 
</authentication> 

<authorization> 
    <allow users="?" /> 
</authorization> 

<membership defaultProvider="ASPPGSqlMembershipProvider" userIsOnlineTimeWindow="20"> 
    <providers> 
     <clear /> 
     <add name="AspNetSqlMemberShipProvider" applicationName="umbraco4" type="System.Web.Security.SqlMembershipProvider" connectionStringName="UmbracoDb" requiresUniqueEmail="true" enablePasswordReset="true" enablePasswordRetrieval="false"/> 
     <add name="UsersMembershipProvider" applicationName="umbraco4" type="umbraco.providers.UsersMembershipProvider" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" /> 
     <add name="ASPPGSqlMembershipProvider" applicationName="umbraco4" 
      passwordStrengthRegularExpression="" minRequiredPasswordLength="4" minRequiredNonalphanumericCharacters="0" 
      enablePasswordRetrieval="false" 
      enablePasswordReset="true" 
      requiresQuestionAndAnswer="false" 
      requiresUniqueEmail="true" 
      forumUpfileFolderPath="D:\www\files" 
      type="ASPPG.MembershipProviders.ASPPGSqlMembershipProvider, ASPPGSiteIntegrationPackage"/> 
    </providers> 
</membership> 

Voici comment je me connecte l'utilisateur:

if (Membership.ValidateUser(txtUserName.Text, txtPasssword.Text)) { 
    HttpCookie cookie = FormsAuthentication.GetAuthCookie(txtUserName.Text, false); 
    cookie.Expires = DateTime.Now.AddDays(1); 
    cookie.Domain = ConfigurationManager.AppSettings["Level2DomainName"]; 
    HttpContext.Current.Response.Cookies.Add(cookie); 
    Response.Redirect(Request.Url.ToString()); 
} 

Quand je ferme le navigateur, l'utilisateur est toujours connecté Comment faire pour que le site web oublie l'utilisateur à travers une option, de sorte que l'utilisateur lui-même peut décider si le site doit se souvenir ou pas?

Merci à l'avance :)

M

Répondre

5

Avez-vous essayé de ne pas régler la cookie.Expires ou au moins la mise à DateTime.MinValue pour les utilisateurs de qui ne veulent pas être « souvenir »?

De MSDN:

Réglage de la propriété Expires à MinValue fait un cookie de session, ce qui est sa valeur par défaut.

+0

Vous utilisez l'espace de noms System.Net, mais il semble que la question se trouve dans l'espace de noms System.Web. Je ne sais pas comment ils se rapportent, mais je n'ai pas trouvé un commentaire similaire à propos de cookie.Expires dans l'espace de noms System.Web. – abelenky

+0

@abelenky Je n'ai pas trouvé de bonne citation de System.Web, j'ai donc fait une recherche rapide et je l'ai trouvée dans System.Web. Je ne suis pas sûr pourquoi la remarque n'est pas incluse dans les deux endroits. – Kelsey

+0

@able - un cookie est un cookie, que ce soit un Cookie ou un HttpCookie. Seul l'encapsuleur a changé, pas l'implémentation et le comportement sous-jacents en ce qui concerne l'authentification des formulaires ASP.net. –

Questions connexes