Как получить открытую переменную (в модуле), чтобы НЕ делить значение между пользователями

Я работаю в веб-приложении ASP.NET (VB) с аутентификацией Windows / Active Directory

Я использую модуль, чтобы я мог вызывать общедоступные подпрограммы и функции, а также ссылочные переменные без необходимости создания нового объекта для доступа к ним на каждой странице.

В этом модуле у меня есть некоторые общедоступные переменные, которые я использую на нескольких страницах веб-приложения. Недавно я понял, что значения этих открытых переменных в модуле распределяются между всеми пользователями.

ЦЕЛЬ: Я хочу, чтобы значение этих глобальных переменных было специфичным для одного пользователя и не разделялось между всеми сессиями, и я не хочу создавать экземпляр нового объекта / класса на каждой странице, которая использует переменную.

ЗАМОК: Я не хочу хранить значение в переменной на стороне клиента, такой как cookie или сеанс. Я хочу, чтобы значение было сохранено на СЕРВЕРЕ, но определено для каждого клиента / пользователя.

Единственное, что я могу сделать, это настроить глобальную коллекцию / словарь и сохранить переменные с аутентифицированными именами пользователей, но тогда мне нужно иметь специальные функции для получения и установки значений. Несмотря на то, что это будет работать, необходимо обновить все ссылки на эти переменные на всех страницах приложения.

ПРИМЕР ПРОБЛЕМЫ: Приведенный ниже код показывает, как я создаю открытую переменную внутри модуля и как значение устанавливается с одной страницы и используется на другой. Я хотел бы продолжать использовать эту переменную таким же образом и разделять ее значение между страницами, но значение переменной НЕ должно делиться между пользователями.

- 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  

В этом приложении есть много страниц, которые необходимо будет обновить вручную, если мне придется использовать мое решение для сбора индексов с использованием идентификатора пользователя, поэтому я надеюсь, что есть способ просто по-разному охватить эти переменные или отключить общий доступ между сессиями. Заранее спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос