Sessie-time-out in ASP.NET

Ik gebruik een ASP.NET 2.0-toepassing in IIS 6.0. Ik wil dat de sessietime-out 60 minuten is in plaats van de standaard 20 minuten. Ik heb het volgende gedaan

  1. Stel <sessionState timeout="60"></sessionState>in
    in web.config.
  2. Stel de sessietime-out in op 60 minuten in IIS-manager/Website-eigenschappen/ASP.NET-configuratie-instellingen.
  3. Stel de time-out voor inactiviteit in op 60 minuten in de eigenschappen/prestaties van de toepassingsgroep.

Ik krijg nog steeds een sessietime-out van 20 minuten. Moet ik nog iets doen?


Antwoord 1, autoriteit 100%

Gebruikt u formulierverificatie?

Formulierverificatie gebruikt zijn eigen waarde voor time-out (standaard 30 min.). Een time-out voor formulierverificatie stuurt de gebruiker naar de inlogpagina terwijl de sessie nog steeds actief is. Dit kan lijken op het gedrag dat uw app vertoont wanneer een sessie time-out is, waardoor het gemakkelijk is om de een met de ander te verwarren.

<system.web>
    <authentication mode="Forms">
          <forms timeout="50"/>
    </authentication>
    <sessionState timeout="60"  />
</system.web>

Als u de time-out voor formulieren instelt op iets minder dan de time-out van de sessie, kan de gebruiker een venster krijgen om weer in te loggen zonder sessiegegevens te verliezen.


Antwoord 2, autoriteit 16%

Ik weet niets over web.config of IIS.
Maar ik geloof dat je het vanuit C#-code kunt doen zoals

Session.Timeout = 60; // 60 is number of minutes

Antwoord 3, autoriteit 15%

Gebruik het volgende codeblok in uw web.config-bestand.
Hier is de standaard time-out voor sessie 80 minuten.

<system.web>
 <sessionState mode="InProc" cookieless="false" timeout="80" />
</system.web>

Gebruik de volgende link voor sessietime-out met pop-upwaarschuwingsbericht.

Sessie time-out voorbeeld

Ter info: de bovenstaande voorbeelden zijn gedaan met devexpress pop-upbesturing, dus u moet devexpress pop-upbesturing aanpassen/vervangen door normale pop-upbesturing. Als u devexpress gebruikt, hoeft u dit niet aan te passen


Antwoord 4, autoriteit 4%

In mijn situatie was het Application Pool. Het is ingesteld om opnieuw op te starten wanneer het xx minuten inactief is. Als ik het instel om niet opnieuw op te starten, lijkt het de waarde van Web Config te gebruiken.


Antwoord 5, autoriteit 3%

Heeft u iets in machine.config dat van kracht kan worden? Het instellen van de sessietime-out in web.config zou alle instellingen in IIS of machine.config moeten overschrijven, maar als u een web.config-bestand ergens in een submap in uw toepassing hebt, zal die instelling die in de hoofdmap van uw toepassing overschrijven.

Als ik het me goed herinner, is de time-out in IIS ook alleen van invloed op .asp-pagina’s, niet op .aspx. Weet u zeker dat uw sessiecode in web.config correct is? Het zou er ongeveer zo uit moeten zien:

<sessionState
    mode="InProc"
    stateConnectionString="tcpip=127.0.0.1:42424"
    stateNetworkTimeout="60"
    sqlConnectionString="data source=127.0.0.1;Integrated Security=SSPI"
    cookieless="false"
    timeout="60"
/>

Antwoord 6, autoriteit 3%

Dat is meestal alles wat u hoeft te doen…

Weet je zeker dat de reden dat de sessie na 20 minuten verloren gaat, is dat je inactief bent geweest…

Er zijn veel redenen waarom de sessie kan worden gewist. U kunt gebeurtenisregistratie voor IIS inschakelen en vervolgens de gebeurtenisviewer gebruiken om de redenen te zien waarom de sessie is gewist… u zou kunnen ontdekken dat dit om andere redenen is?

Je kunt ook de documentatie voor gebeurtenisberichtenen de bijbehorende tabel met gebeurtenissen.


Antwoord 7

https://usefulaspandcsharp.wordpress.com/tag/session-timeout/

<authentication mode="Forms">
  <forms loginUrl="Login.aspx" name=".ASPXFORMSAUTH" timeout="60" slidingExpiration="true" />
</authentication>
<sessionState mode="InProc" timeout="60" />

Antwoord 8

Als u verificatie gebruikt, raad ik u aan het volgende toe te voegen aan het web.config-bestand.

In mijn geval worden gebruikers na een time-out omgeleid naar de inlogpagina:

<authentication mode="Forms">
    <forms defaultUrl="Login.aspx" timeout="120"/>
</authentication>

Antwoord 9

Sinds ASP.Net core 1.0 (vNext of welke naam er ook voor wordt gebruikt) worden sessies anders geïmplementeerd.
Ik heb de sessietime-outwaarde in Startup.cs, void ConfigureServicesgewijzigd met:

services.AddSession(options => options.IdleTimeout = TimeSpan.FromSeconds(42));

of als u de appsettings.json-bestand wilt gebruiken, kunt u iets doen als:

// Appsettings.json
"SessionOptions": {
    "IdleTimeout": "00:30:00"
}
// Startup.cs
services.AddSession(options => options.IdleTimeout = TimeSpan.Parse(Config.GetSection("SessionOptions")["IdleTimeout"]));

Antwoord 10

U kunt de instelling hier in IIS vinden:

Het is te vinden op het serverniveau, websitiveau of app-niveau onder “ASP”.

Ik denk dat je het hier op het web.config-niveau kunt instellen. Bevestig dit voor jezelf.

<configuration>
   <system.web>
      <!-- Session Timeout in Minutes (Also in Global.asax) -->
       <sessionState timeout="1440"/>
   </system.web>
</configuration>

Antwoord 11

IIS Sessions Time-outwaarde is alleen voor klassieke .asp-toepassingen, dit wordt gecontroleerd op IIS-configuratie.
In uw geval voor ASP.NET-apps is alleen de Web.Config-opgegeven time-outwaarde van toepassing.


Antwoord 12

De standaard sessie time-out wordt gedefinieerd in IIS tot 20 minuten

Volg de onderstaande procedures voor elke ingerichte site op het IIS 8.5-web

Open de IIS 8.5-manager.

Klik op de naam van de site.

Selecteer “Configuration Editor” onder het gedeelte “Management”.

Uit de vervolgkeuzelijst “Sectie:” bovenaan de configuratie
Editor, zoek “System.Web / SessionState”.

Stel de “timeout” in op “00:20:00 of minder”, met behulp van de laagste waarde
mogelijk afhankelijk van de toepassing. Aanvaardbare waarden zijn 5
minuten voor toepassingen met hoge waarde, 10 minuten voor middellange waarde
Toepassingen en 20 minuten voor toepassingen met lage waarde.

Klik in het deelvenster “Acties” op “Toepassen”.


Antwoord 13

Als u wilt sessie time-out voor de website dan verwijderen

<authentication mode="Forms">
      <forms timeout="50"/>
</authentication>

Tag van web.config-bestand.


Antwoord 14

De time-out-eigenschap Specificeert de time-outperiode die is toegewezen aan het sessieobject voor de toepassing, in minuten. Als de gebruiker geen opfrissen of een pagina binnen de time-outperiode aanvraagt, eindigt de sessie.

IIS 6.0: de minimaal toegestane waarde is 1 minuut en het maximum is
1440 minuten.

Session.Timeout = 600;

Antwoord 15

Na het wijzigen van de sessie-time-outwaarde in IIS, start de IIS op.
Om dit te bereiken, ga naar Command Prompt. Typ IISRESET en druk op ENTER.

Other episodes