So erhalten Sie eine öffentliche Variable (in einem Modul), um den Wert NICHT zwischen Benutzern zu teilen

Ich arbeite in einer ASP.NET (VB) Webanwendung mit Windows / Active Directory-Authentifizierung

Ich benutze ein Modul, damit ich öffentliche Unterprogramme und Funktionen sowie Referenzvariablen aufrufen kann, ohne ein neues Objekt instanziieren zu müssen, um auf jeder Seite darauf zuzugreifen.

Innerhalb dieses Moduls habe ich einige öffentliche Variablen, die ich in der gesamten Webanwendung auf mehreren Seiten verwende. Ich habe kürzlich festgestellt, dass die Werte für diese öffentlichen Variablen im Modul von allen Benutzern gemeinsam genutzt werden.

DAS ZIEL: Ich möchte, dass der Wert für diese globalen Variablen für einen einzelnen Benutzer spezifisch ist und nicht von allen Sitzungen gemeinsam genutzt wird, und ich möchte nicht auf jeder Seite, die die Variable verwendet, ein neues Objekt / eine neue Klasse instanziieren müssen.

THE CATCH: Ich möchte den Wert nicht in einer clientseitigen Variablen wie einem Cookie oder einer Sitzung speichern. Ich möchte, dass der Wert auf dem SERVER gespeichert wird, aber für jeden Client / Benutzer spezifisch ist.

Ich kann mir nur vorstellen, eine globale Sammlung / ein globales Wörterbuch einzurichten und die Variablen mit den authentifizierten Benutzernamen zu speichern. Dann muss ich jedoch über bestimmte Funktionen verfügen, um die Werte abzurufen und festzulegen. Während dies funktioniert, müssen alle Verweise auf diese Variablen auf allen Seiten der Anwendung aktualisiert werden.

BEISPIEL DES PROBLEMS: Der folgende Code zeigt, wie ich die öffentliche Variable innerhalb des Moduls erstelle und wie der Wert von einer Seite aus festgelegt und auf einer anderen verwendet wird. Ich möchte diese Variable weiterhin auf die gleiche Weise verwenden und ihren Wert zwischen den Seiten teilen, aber der Wert der Variablen muss NICHT zwischen den Benutzern geteilt werden.

- MODULE.VB -

Public Module MyMod  
    Public myVariable as String = ""  
End Module  

- MAINPAGE.VB -

  Partial Class _Default  
        Sub Page_Load() Handles MyBase.Load()  
           myVariable = "HELLO WORLD"  
        End Sub  
    End Class  

- NEXTPAGE.VB -

  Partial Class _Default  
        Sub Page_Load() Handles MyBase.Load()  
           Response.Write(myVariable)  
        End Sub  
    End Class  

Es gibt eine Menge Seiten in dieser Anwendung, die manuell aktualisiert werden müssen, wenn ich meine mit userID indizierte Erfassungslösung verwenden muss. Daher hoffe ich, dass es eine Möglichkeit gibt, diese Variablen einfach anders festzulegen oder die Freigabe zu deaktivieren zwischen den Sitzungen. Danke im Voraus!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage