2016-08-13 2 views
2

Anwendung automatisch in wenigen Sekunden abmelden, ich möchte es auf 30 Minuten erhöhen.Wie Session-Timeout-Zeit in Asp. Net MVC 5 erhöhen?

Ich habe etwas Code in der Datei web.config gemacht, aber es funktioniert nicht. Ich habe viele Artikel darüber recherchiert, aber ich konnte es nicht lösen.

Web.config Code:

<sessionState mode="InProc" timeout="1800"></sessionState> 
    <authentication mode="Forms"> 
     <forms loginUrl="~/Login" timeout="1800"> 
     </forms> 
    </authentication> 
+0

Die von Ihnen angezeigte Konfiguration funktioniert. Wenn Ihre Sitzungen immer noch auslaufen, passiert noch etwas anderes. Erläutern Sie, wie Ihre Hosting-Umgebung aussieht, zeigen Sie relevanten Code, der die Sitzung verwendet, und erklären Sie, welches Verhalten Sie genau erleben. – CodeCaster

Antwort

0

Ein weiterer Ort, das eingestellt werden kann, ist in Ihrer Global.asax Datei. Wenn die sessionState in Ihrer Datei web.config nicht funktioniert, schlage ich vor, einen Blick hinein zu werfen. Anscheinend wird die Global.asax Datei die web.config Datei überschreiben.

Session.Timeout = 30;//Timeout expects an integer representing minutes 
+0

Ich tat dies, aber gab mir einen Fehler 'Sitzungsstatus ist in diesem Kontext nicht verfügbar. ' –

+0

Ich schlage diesen Ansatz nicht vor, aber ich habe es in Session_Start ohne Fehler getestet. – QMaster

1

Session State & Authentifizierung Timeouts ist in wenigen Minuten nicht Sekunden: Es kann wie folgt eingestellt werden. Also, sollten Sie

<sessionState mode="inProc" timeout="30" ></sessionState> 
<authentication mode="Forms"> 
     <forms loginUrl="~/Login" timeout="30"> 
     </forms> 
</authentication> 

haben Außerdem sollten Sie sich bewusst sein, dass die Art und Weise dieses Setup ist, wird die Authentifizierung 30 Minuten Timeout, nachdem es gewährt wurde, während die Sitzung, um die 30 Minuten wird sich vom letzten Zugriff zu sein. Um diese beiden näher an die Synchronisierung zu bringen, sollten Sie dem Formularelement das Attribut gleitendeExpiration = "True" hinzufügen.

Wenn nach diesen Änderungen noch nach ein paar Sekunden, die Sie aus einloggt, nehmen Sie sehen:

  1. wird das Cookie in der Website erstellt zu werden? Sein Name lautet .ASPXAUTH und es sollte ein Session-Cookie sein.
  2. Schließen Sie den Browser, wenn die Zeitüberschreitung auftritt?
  3. Haben Sie mehrere Anwendungen mit derselben Authentifizierungsmethode?
+0

Der Standardwert für sessionState ist slidingExpiration = "True", daher muss nicht implizit – Dror

+0

gesetzt werden. SlidingExpiration erzwingt in einigen Fällen, dass der Timer neu gestartet wird. Aber es gibt noch viele Gründe, die Timeout-Zeit zu ändern. –