Есть ли место для проблемы в следующем коде с точки зрения нескольких пользователей одного и того же веб-приложения?Я имею в виду, что я знаю, что чисто статическая строка будет совместно использоваться всеми сеансами для одного приложения ASP.NET, но, учитывая, что это явно относится к Current.Session
, даже несмотря на то, что оно статично, кажется, что оно всегда будет ссылаться наэкземпляр сеанса «текущего пользователя».
Но происходит ошибка, которая может быть объяснена всеми, кто разделяет текущее значение Mode
и, таким образом, самое последнее изменение перезаписывает значение режима всех остальных.
(В качестве фона: эта строка относится к классу Helpers
, который используется во всем приложении. Я не хочу делать жестко запрограммированные ссылки на Session["Mode"]
во всем приложении и не хочу передавать Session["Mode"]
в каждом вызове метода со страницы aspx.cs.)
public static string Mode
{
get
{
var value = HttpContext.Current.Session["Mode"];
return (value ?? string.Empty).ToString();
}
set
{
HttpContext.Current.Session["Mode"] = value;
}
}