Я недавно перешел с MVC5 на .NET Core 2.1 (MVC).Может ли кто-нибудь помочь мне с этим, пожалуйста.
У меня есть ApplicationUser
, и я расширил модель / таблицу для хранения FirstName
.
. В представлении я хочу иметь возможность вывести имя текущего пользователязначение.User
в представлении - это ClaimsPrincipal
, поэтому мне нужно уйти в БД, чтобы получить значение, которое мне нужно или access UserManager
, чтобы получить его.
Теперь я знаю, что могу получить это в контроллере, но Я не хочу создавать вызов JQuery, чтобы захватывать его каждый раз, когда мне это нужно.
Я хочу иметь доступ к серверу, в идеале через статический вспомогательный класс.
В MVC5 у меня был бы помощник, чтобы выполнить работу без проблем.Например, примерно так:
public static string GetCurrentUserFirstName()
{
string _usrRef = HttpContext.Current.User.Identity.GetUserId();
var user = HttpContext.Current.GetOwinContext().GetUserManager<ApplicationUserManager>().FindById(_usrRef);
return user.FirstName;
}
Однако .NET Core не работает таким образом.
В контроллере я мог бы сказать:
var user = await _userManager.GetUserAsync(User);
string firstName = user.FirstName;
или я мог бы отправиться в БД через звонок, используя Dapper с моей строкой соединения.
Я могу 'Внедрить UserManager
или ConnectionStrings
в помощник через конструктор, поскольку он статичен.
Есть ли способ получить доступ к любому из этих статических помощников?
Это небольшие изменения, которые принесут вам больше всего!