Есть ли место для выпуска в следующем коде с точки зрения нескольких пользователей одного и того же веб-приложения? Я имею в виду, что я знаю, что чисто статическая строка будет использоваться для всех сеансов для одного приложения ASP.NET, но при условии, что это явно относится к Current.Session
, хотя это статично, похоже, что он всегда будет ссылаться на экземпляр сеанса «текущего пользователя».Статичная ссылка на HttpContext.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;
}
}
«Получает или задает объект HttpContext для текущего HTTP-запроса». http://msdn.microsoft.com/en-us/library/system.web.httpcontext.current.aspx –