2 Stimmen

Probleme mit der ASP.NET-Mitgliedschaft, die authentifiziert bleibt

Meine Anwendung ist also insofern seltsam, als dass man beim Einloggen ein oder zwei Seiten lang eingeloggt bleibt und dann verloren geht. Meine Einstellungen sind diese:

 <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>

Vielen Dank für Ihre Hilfe.

3voto

Scott Ivey Punkte 39470

Hier fallen mir 2 Dinge auf. Erstens: Sie erlauben *-Benutzer anstelle von ? * bedeutet anonym, ? bedeutet authentifiziert. Ich würde das wie folgt ändern und sehen, ob das hilft...

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

Der zweite Gedanke wäre, dass Sie slidingExpiration="true" zu Ihrem Authentifizierungsblock hinzufügen möchten. Das wird die Anmeldung in ein gleitendes Fenster machen - so dass sie nur nach 20 Minuten der Inaktivität abgemeldet werden...

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

1voto

JC. Punkte 175

Ich würde auch den Code überprüfen und sehen, ob das Formularauthentifizierungsticket mit einer anderen Zeitüberschreitung wie im Beispiel unten überschrieben wird.

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

Wenn die Einstellungen explizit durch Code überschrieben werden, funktionieren die web.config-Einstellungen nicht wie erwartet.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X