Вам не нужен эквивалент объекта Session
в веб-приложениях.Сеансы необходимы только потому, что веб-приложениям фактически необходим доступ к переменным через границы процесса (= сеанс в веб-приложении включает в себя несколько запросов пользователя к веб-серверу, и исторически каждый запрос запускает новое приложение!).
В «нормальном» приложении это не так - подойдет любая нелокальная переменная.В вашем конкретном случае было бы целесообразно, чтобы в форме пароля было свойство, содержащее имя пользователя.Затем пользователь вводит свое имя пользователя и пароль, и вызывающая сторона этой формы пароля может получить имя пользователя:
' The caller looks something like this:
Dim pw As New PasswordForm()
pw.ShowDialog() ' Display the dialog, and wait until the user has dismissed it.
Dim theUsername = pw.Username
Внутри PasswordForm
есть что-то вроде этого:
Public ReadOnly Property Username() As String
Get
' Return the value of the username textbox field.
Return UsernameInput.Text
End Get
End Property
Мы могли бы стать более изощренными, но это подойдет.
Если вам нужно повторно использовать имя пользователя в приложении, есть вероятность, что вам также необходимо поделиться другой информацией о пользователе (над чем он работает?…).Короче говоря, это состояние приложения, и обычно есть объект, который представляет это состояние.Это было бы правильное место для хранения имени пользователя.
Если ваше приложение имеет только одну другую форму («главный диалог»), то просто используйте закрытую переменную внутри этой формы для хранения имени пользователя.Нет необходимости в глобальной переменной.