Cómo obtener una variable pública (en un módulo) para NO compartir el valor entre los usuarios

Estoy trabajando en una aplicación web ASP.NET (VB) con autenticación de Windows / Active Directory

Estoy usando un módulo para poder llamar a subrutinas y funciones públicas, y variables de referencia, sin tener que crear una instancia de un nuevo objeto para acceder a ellos en cada página.

Dentro de ese módulo, tengo algunas variables públicas que estoy usando en varias páginas a través de la aplicación web. Recientemente me he dado cuenta de que los valores de estas variables públicas en el módulo se comparten entre todos los usuarios.

EL OBJETIVO: quiero que el valor de estas variables globales sea específico para un solo usuario y no se comparta entre todas las sesiones, y no quiero tener que crear una instancia de un nuevo objeto / clase en cada página que use la variable.

LA CAPTURA: no quiero almacenar el valor en una variable del lado del cliente, como una cookie o una sesión. Quiero que el valor se almacene en el SERVIDOR pero específico para cada cliente / usuario.

Lo único que puedo pensar es hacer una colección / diccionario global y almacenar las variables con los nombres de usuario autenticados, pero luego necesito tener funciones específicas para obtener y establecer los valores. Si bien esto funcionará, requiere que se actualicen todas las referencias a estas variables en todas las páginas de la aplicación.

EJEMPLO DEL PROBLEMA: El siguiente código muestra cómo estoy creando la variable pública dentro del módulo y cómo se establece el valor desde una página y se usa en otra. Me gustaría continuar usando esta variable de la misma manera y compartir su valor entre páginas, pero el valor de la variable NO debe compartirse entre los usuarios.

- MÓDULO.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  

Hay MUCHAS páginas en esta aplicación que deberán actualizarse manualmente si tengo que usar mi solución de colección indexada por ID de usuario, por lo que espero que haya una manera de limitar el alcance de estas variables de manera diferente o una manera de deshabilitar el uso compartido entre sesiones. ¡Gracias por adelantado!

Respuestas a la pregunta(2)

Su respuesta a la pregunta