Używam MVC5, utworzonego ApplicationUser : IdentityUser
z własnymi właściwościami. Teraz chcę uzyskać niestandardową właściwość (Avatar) w layout.cshtml, aby pokazać zalogowany obraz użytkownika w różnych widokach układu (nagłówek, pasek boczny). Jak mogę to zrobić?Pobierz bieżącego ApplicationUser w widoku układu
public class ApplicationUser : IdentityUser
{
public string Avatar { get; set; }
public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager)
{
var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
return userIdentity;
}
}
Obecnie używam @User.Identity.Name
, aby uzyskać zalogowaną nazwę użytkownika w moich widokach. Chcę również obraz użytkownika.
Jak mogę to zdobyć?
nie jestem pewien, ale można oddać przedmiot najpierw @ (((AppliactionUser) User.Identity) .Avatar) Rozwiązałem to, tworząc podstawowy model widoku, który zawiera w sobie moją klasę użytkownika. Używam klasy bazowej dla wielu właściwości, których używam w moim układzie. – Martin
@Martin Nie działa. Zgłasza 'Nie można rzutować obiektu typu 'System.Security.Claims.ClaimsIdentity' wyjątek – SMUsamaShah
Następnie utworzyłbym bazowy model widoku, którego używasz w każdej ze swoich wizualizacji. Umożliwi to dostęp do wszystkich potrzebnych właściwości na stronie układu. – Martin