2009-02-03 12 views
3

Donc, mon application est étrange dans le fait que lorsque vous vous connectez, vous resterez connecté pour une page ou deux, puis se perdre. Mes paramètres sont les suivants:ASP.NET Abonnement restant authentifié questions

<authentication mode="Forms">  
    <forms name=".ASPXFORMSAUTH" timeout="20"/> 
    </authentication> 

<authorization> 
<allow users="*" /> 
</authorization> 
<membership defaultProvider="MySqlConnection" userIsOnlineTimeWindow="45"> 
<providers> 
    <clear /> 
    <add name="MySqlConnection" type="System.Web.Security.SqlMembershipProvider" connectionStringName="MySqlConnection" 
applicationName="HQChannel" 
enablePasswordRetrieval="true" 
enablePasswordReset="true" 
requiresQuestionAndAnswer="false" 
requiresUniqueEmail="true" 
passwordFormat="Hashed" 
minRequiredNonalphanumericCharacters="0" 
minRequiredPasswordLength="6" /> 
</providers> 
</membership> 

Merci pour votre aide.

Répondre

3

2 choses se distinguent pour moi ici. La première est que vous autorisez * les utilisateurs au lieu de? utilisateurs. * signifie anonyme,? signifie authentifié. Je change à la & suivante voir si cela aide ...

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

2ème pensée serait que vous voudriez ajouter slidingExpiration = « true » à votre bloc d'authentification. Cela fera la connexion dans une fenêtre coulissante - de sorte qu'ils ne journaliser après 20 minutes d'inactivité ...

<forms name=".ASPXFORMSAUTH" timeout="20" slidingExpiration="true" /> 
1

Je vérifie également le code et voir si le ticket d'authentification de formulaires est remplacée par une timeout différent comme dans l'exemple ci-dessous.

FormsAuthenticationTicket ticket = new FormsAuthenticationTicket 
(
    1, // version 
    txtEmail.Text, // name 
    DateTime.Now, // issueDate 
    DateTime.Now.AddMinutes(30), // expiration 
    false, // isPersistent 
    roles, // userData 
    FormsAuthentication.FormsCookiePath // cookiePath 
); 

Si les paramètres sont explicitement remplacés à partir du code puis les paramètres web.config ne fonctionnera pas comme prévu.