Могу ли я написать что-то вроде следующего (в сборке, используемой на веб-странице ASP.NET)?Можно ли это написать?
public static string CurrentAuthenticatedUserFromHttpRequest
{
get
{
if (HttpContext.Current.Items["AuthUser"] == null)
{
return string.Empty;
}
return HttpContext.Current.Items["AuthUser"].ToString(); //set in "TryAuthenticate"
}
}
Это будет статическое свойство только для чтения. Значение (для HttpContext.Current.Items ["AuthUser"]) устанавливается через httphandler.
Просто интересно, как это будет выполняться во время нескольких запросов. Являются ли данные точными, когда несколько пользователей пытаются получить доступ к одному и тому же свойству (в нескольких запросах), даже когда возникают большие объемы запросов?
HttpContext для HTTP-запроса, как вы собираетесь делиться данными между пользователями в любом случае? –
Возможно, я могу ошибаться, но когда пользователь делает запрос на сервер, после создания appdomain создается класс HttpContext, класс содержит объекты, специфичные для текущего запроса приложения, такие как объекты HttpRequest и HttpResponse. Объект HttpRequest содержит информацию о текущем запросе. – StringBuilder
Я должен был спросить лучше. Извиняюсь. Я хотел, чтобы это свойство всегда возвращало текущую информацию пользователя через текущий запрос. Я не пытаюсь поделиться ценностями между несколькими запросами. Мы обсуждали использование HttpContext.Items (которое не является потокобезопасным), используемое в статическом свойстве. – user203687