Ich halte einige Informationen in statischen Variablen, die in der Seitenklasse definiert sind (nicht in Global.asax). Ich deklariere nur Variablen im Code wie:
protected static int SomeGlobalUnsecureID;
protected static string SomeGlobalUnsecureString;
und definieren Sie die Variable im PageLoad-Ereignis. Zum Beispiel überprüfe ich die ID aus der Datenbank. Wenn sie sich von SomeGlobalUnsecureID unterscheidet, aktualisiere ich SomeGlobalUnsecureID und String von einem anderen Ort, ansonsten lasse ich sie unverändert. Dies ist in meiner App absolut sicher. Logik (dh diese Daten sind nicht sicher, jeder kann darauf zugreifen, kein Problem); Das einzige, was ich erreichen möchte, ist
Halten Sie unabhängig von den verbundenen Benutzern dieselbe Speicherkapazität
Ändern Sie dies nur dann, wenn sich die persistenten Informationen von denen im 'Speicher' unterscheiden (da das Lesen der Zeichenfolge für mich zeitaufwändig ist.
Jetzt, da ich in PageLoad einchecke, habe ich keine Probleme beim erneuten Laden von Seiten. Meine Seite ist jedoch voller WebMethods, und manchmal sehe ich, dass die statischen Variablen auf Null gesetzt sind. Und der seltsame Teil ist; Die Sitzung ist auch dann noch aktiv, wenn die statischen Variablen auf Null gesetzt sind (also-> kein Server oder App. Neustart des Pools usw.)
Das ist wirklich seltsam für mich. Ich gehe davon aus, dass die statische Variable ihren Wert behält, bis die Anwendung (irgendwie) endet. Aber auch die Sitzung ist nicht abgelaufen, die statische Variable ist auf Null gesetzt. Was schlagen Sie vor? Ist die Verwendung von Anwendungsvariablen eine bessere Wahl? Alle Dokumente, die ich im Web gelesen habe, schlagen statische Variablen anstelle von Anwendungsvariablen vor. Muss ich sie irgendwie anders deklarieren?