Aravindba Ответов: 2

Как использовать публичную переменную, которая используется в целом ASP.NET веб-приложение


Всем Привет,
Использование общей переменной в Asp.NET с VB, в моем веб-приложения у меня есть класс ФИС,aspx и asmx файла, при этом все страницы мне нужно получить доступ к одной общей переменной, который я задаю, когда пользователь логин, если я использую сессии я не могу получить доступ в asmx, а. class-файлов, если я объявляю глобальную переменную в класс файл после обновить страницу понять присвоения значений и стало пусто.

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

Это для соединения sting , я знаю, может объявить в web conig, но мы создаем каждый sql-логин для каждого пользователя, поэтому при входе пользователя мы передаем имя пользователя в sql User ID

Что я уже пробовал:

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

С уважением,
Аравинд

2 Ответов

Рейтинг:
6

Richard Deeming

Вполне возможно использовать состояние сеанса из .asmx обслуживание:

[WebMethod(EnableSession = true)]
public string checkSession()
{
    return HttpContext.Current.Session.SessionID;
}

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


Maciej Los

5ed!

Рейтинг:
12

OriginalGriff

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

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