Как я могу получить доступ к пользовательским данным IdentityUser (имя Img) внутри LoginPartial (. Net Core 2.2) - PullRequest
0 голосов
/ 07 февраля 2020

Мне было интересно, как я могу отобразить пользовательские данные, которые я использовал для расширения IdentityUser.

По умолчанию loginpartial отображает User.Identity.Name (который на самом деле является адресом электронной почты), я хотел бы отобразить полное имя пользователя и отобразить с ним изображение пользователя. Он вызывает User.Identity.Name из интерфейса IIdentity

    namespace System.Security.Principal
{ 
    public interface IIdentity
    {   
        string AuthenticationType { get; }
        bool IsAuthenticated { get; }
        string Name { get; }
    }
}

Я не могу изменить этот файл, хотя. Это мой класс, расширяющий identityuser

    public class ApplicationUser : IdentityUser
{
    public ApplicationUser() : base() { } 
    public string Voornaam { get; set; }
    public string Tussenvoegsel { get; set; }
    public string Achternaam { get; set; }
    public string Gebruikersnummer { get; set; }
    public string ImgNaam { get; set; }
}

в частичном представлении, которое я призываю к этому классу модели, а также:

@using Microsoft.AspNetCore.Identity
@inject SignInManager<ApplicationUser> SignInManager
@inject UserManager<ApplicationUser> UserManager

Теперь мой вопрос, как я могу получить строку ImgNaam внутри мой частичный взгляд?

Ответы [ 2 ]

3 голосов
/ 07 февраля 2020

Я думаю, что было бы лучше хранить необходимую информацию в Заявках ( вы можете прочитать об этом посте ).

Но вы также можете получить информацию, используя UserManager.

Вы можете использовать переменную User, которая имеет тип ClaimsPrincipal, чтобы получить всего пользователя из UserManager, используя следующий код:

@
{
     var activeUser = await UserManager.GetUserAsync(User);
}

После этого вы можете использовать эту переменную:


   <img src="@activeUser.ImgNaam">
1 голос
/ 07 февраля 2020

Вы можете сделать следующее:

@using Microsoft.AspNetCore.Identity
@inject SignInManager<ApplicationUser> SignInManager
@inject UserManager<ApplicationUser> UserManager

@{
   ApplicationUser loggedInUser = await UserManager.GetUserAsync(User); // Here `User` is the claim principal
   var imgNaam= loggedInUser.ImgNaam;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...