Как заставить User.Identity работать вне контроллера
У меня есть отдельный проект с некоторыми моими специальными помощниками ASP.NET MVC
В одном из моих помощников мне нужно проверить идентификацию пользователя.
Как я могу заставить User.Identity
работать там?
По умолчанию он живет в System.Security.Principal
в интерфейсе interface IPrincipal
Ответы
Ответ 1
HtmlHelper имеет текущий ViewContext и через HttpContext вы получите объект User для текущего пользователя. В своем методе расширения вы можете использовать этот
public static bool MyHelper(HtmlHelper helper)
{
var userIdentity = helper.ViewContext.HttpContext.User.Identity;
// more code
}
Ответ 2
С легкостью вы можете получить к нему доступ:
HttpContext.Current.User.Identity
Итак, HttpContext.Current - это трюк.