Czy jest miejsce do wydania w następującym kodzie pod względem wielu użytkowników tej samej aplikacji internetowej? To znaczy, wiem, że ciąg czysto statyczny będzie współdzielony przez wszystkie sesje dla pojedynczej aplikacji ASP.NET, ale biorąc pod uwagę, że to wyraźnie odnosi się do Current.Session
, nawet jeśli jest statyczny, wydaje się, że zawsze odnosi się do instancji sesji "bieżącego użytkownika".Czy statyczne odwołanie do HttpContext.Current.Session zwraca tę samą sesję dla wszystkich użytkowników?
Ale wystąpił błąd, który można wytłumaczyć przez wszystkich, którzy dzielą bieżącą wartość Mode
, a co za tym idzie, ostatnią zmianę nadpisującą wartość trybu innej osoby.
(w tle. Ten napis jest w Helpers
klasy, który jest używany w całej aplikacji nie chcę, aby ciężko zakodowanych odwołań do Session["Mode"]
całej aplikacji i nie chcą zdać Session["Mode"]
w każdej metodzie zadzwoń od strony aspx.cs.)
public static string Mode
{
get
{
var value = HttpContext.Current.Session["Mode"];
return (value ?? string.Empty).ToString();
}
set
{
HttpContext.Current.Session["Mode"] = value;
}
}
"Pobiera lub ustawia obiekt HttpContext dla bieżącego żądania HTTP." http://msdn.microsoft.com/en-us/library/system.web.httpcontext.current.aspx –