Blog Home  Home Feed your aggregator (RSS 2.0)  
HP's Blog - ASPNETKonfiguration
Hans-Peter Schelian's Weblog
 
# Wednesday, September 19, 2007

Geändertes Standardverhalten von Cookies unter NET Framework 2

Ich hatte bereits in einem anderen Blog über das Thema in Bezug auf DotNetNuke geschrieben, aber es hat ja eigentlich nichts spezielles mit DotNetNuke zu tun, sondern es ist eigentlich ein Thema des NET Framework's im speziellen des NET Framework 2.0.

So möchte ich an dieser Stelle noch einmal kurz das Thema Cookies und das geänderte Standardverhalten unter NET Framework 2 in diesem Beitrag beschreiben.

Zuerst einmal die reinen Fakten:

  • Unter NET Framework 1.1 wurde die Gültigkeit eines Cookies automatisch auf 50 Jahre gesetzt (ja 50 Jahre).
  • Unter NET Framework 2.0 wird ein die Dauer der Gültigkeit eins Cookies auf Standard 30 Minuten gesetzt.

Um die Gültigkeit eines Cookies unter ASP.NET 2.0 zu verändern ist der folgende Eintrag in der web.config zuständig.

Je nach Anwendung kann der Eintrag etwas anders aussehen, nachfolgend 2 Beispiele.

Beispiel DotNetNuke (Version 4.5.3 Standardwert)
Original Eintrag

    <authentication mode="Forms">
      <forms name=".DOTNETNUKE" protection="All" timeout="60" cookieless="UseCookies" />
    </authentication>

In dieser Version von DotNetNuke beispielsweise ist der Eintrag der Standardwert timeout="60" bedeutet 60 min.

Mögliche Änderung

    <authentication mode="Forms">
      <forms name=".DOTNETNUKE" protection="All" timeout="2880" cookieless="UseCookies" />
    </authentication>

Der oben stehende Eintrag bedeutet 48 Stunden Cookies Gültigkeit.

Beispiel dasBlog (Version 2.0.7226.0)
Original Eintrag

<authentication mode="Forms">
     <!-- NOTE: If you want to run MULTIPLE dasBlogs on the SAME Domain Name
      include the path in each blog's Web.Config like path="/dasblog1" and path="/yoursite"  as appropriate. -->
       <forms name=".DASBLOGAUTH" protection="All" timeout="60" path="/" cookieless="UseCookies" />
</authentication>

Mögliche Änderung

<authentication mode="Forms">
     <!-- NOTE: If you want to run MULTIPLE dasBlogs on the SAME Domain Name
      include the path in each blog's Web.Config like path="/dasblog1" and path="/yoursite"  as appropriate. -->
       <forms name=".DASBLOGAUTH" protection="All" timeout="525600" path="/" cookieless="UseCookies" />
</authentication>

Der oben stehende Eintrag bedeutet zum Beispiel 1 Jahr Cookies Gültigkeit.

Allgemeiner Hinweis:

Nachdem man diesen Eintrag in der web.config geändert hat sollte man trotzdem noch zusätzlich den Cache löschen, oder einfach das web neu starten, damit das Cookies tatsächlich das neue Timeout erhält.

ASP.NET | Konfiguration
Wednesday, September 19, 2007 6:32:00 AM (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]  
Autor: Hans-Peter Schelian  |  Trackback
# Saturday, August 06, 2005

Wer ASP.NET Anwendungen betreibt und das Hochladen (Upload) von Dateien ermöglicht, wird in vielen Fällen beim versuch größere Dateien (mehere MB groß) Fehlermeldungen erhalten und der Upload der Datei wird nicht funktionieren.

Viele Anwendungen (z. B. auch DotNetNuke) verwenden Standardeinstellungen in der web.config welche nicht für den Upload großer Dateien ausgelegt ist.

Schauen wir uns am Beispiel von DotNetNuke die hierfür notwendigen Einstellungen einmal an:

< HTTPRUNTIME usefullyqualifiedredirecturl="true" maxrequestlength="4096" />

Der oben dargestellte Eintrag ist der Standardeintrag aus der web.config DotNetNuke Version 3.1.0.

Durch den Parameter maxRequestLength="4096" werden Datei Uploads bis zu einer größe von 4 MB zugelassen.

Allerdings kann es trotz dieser Einstellung zu Fehlern beim Upload von Dateien kommen, auch wenn sie nicht größer sind. Der grund hierfür liegt daran, dass es noch zusätzliche Parameter für den Upload von Dateien gibt, die, wenn Sie nicht explizit angegeben werden mit Ihren Standardwerten verwendet werden.

In unserem Fall ist das der Parameter: executionTimeout.

Dieser Parameter enthält wenn er nicht gesetzt wird den Wert 90 (bedeutet 90 sekunden).

Wenn nun bedingt durch die Bandbreite der Upload einer Datei die auch kleiner sein kann, als der in maxRequestLength eingetragene Wert nicht innerhalb von 90 sekunden hochgeladen werden konnte endet der Upload mit einer Fehlermeldung.

Um nun diesen Timeout zu vergrößern müssen wir den Parameter executionTimeout in die web.config hinzufügen und mt dem benötigten TimeoutWert versehen.

Dies machen wir nun gleich zusammen mit der Erhöhung des zulässigen Wertes für die Dateigröße.

Der web.config Eintrag sollte dann so aussehen:

< HTTPRUNTIME usefullyqualifiedredirecturl="true">
       executionTimeout="7200"
       maxRequestLength="16384" />

Wir erlauben also Dateien bis 16 MB größe und haben den Zeitraum in dem die Datei hochgeladen sein muss auf 10 minuten erhöht.

ASP.NET | Konfiguration
Saturday, August 06, 2005 6:31:13 PM (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]  
Autor: Hans-Peter Schelian  |  Trackback
Copyright © 2010 Hans-Peter Schelian - Schelian IT Beratung. All rights reserved.