MVC3- ASP.NET-Зарегистрирован лично-Разные методы

#asp.net-mvc

#asp.net-mvc

Вопрос:

Я хочу узнать вошедшего в систему человека

В чем разница между следующим.

string loggedInName = HttpContext.User.Identity.Name.ToString();

    string loggedInName = HttpContext.Current.User.Identity.Name.ToString();
  

Я задаю этот вопрос, потому что я не могу использовать второй в контроллере. Выдает следующую ошибку

 System.Web.HttpContextBase' does not contain a definition for 'Current' and no extension method 'Current' accepting a first argument of type 'System.Web.HttpContextBase' could be found (are you missing a using directive or an assembly reference?)
  

Ответ №1:

Они идентичны, только если вы не работаете с потоками; System.Web.HttpContext.Current содержит значение, которое привязано к потоку. То есть в любом дополнительном потоке вы не можете получить доступ к HttpContext.Current.

Ответ №2:

HttpContext.Current — это статический метод, который возвращает текущий контекст http, в то время как Context — это метод экземпляра, определенный в классе page, который возвращает текущий контекст http (на самом деле он просто вызывает вышеупомянутую функцию).