Я использую MVC5, созданный ApplicationUser : IdentityUser
с пользовательскими свойствами. Теперь я хочу получить настраиваемое свойство (Avatar) в layout.cshtml, чтобы показать зарегистрированное изображение пользователя в разных макетах (заголовке, боковой панели). Как мне это сделать?Получить текущий ApplicationUser в макете
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;
}
}
В настоящее время я использую @User.Identity.Name
, чтобы получить зарегистрированное имя пользователя в моих представлениях. Я также хочу изображение пользователя.
Как я могу это получить?
я не уверен, но вы можете преобразовать объект первым @ (((AppliactionUser) User.Identity) .Avatar) Я решил это, создав базовую модель представления, в которой есть мой пользовательский класс. Я использую базовый класс для нескольких свойств, которые я использую в своем макете. – Martin
@Martin Не работает. Броски 'Невозможно создать объект типа 'Исправление System.Security.Claims.ClaimsIdentity' – SMUsamaShah
Тогда я бы создал базовую модель просмотра, которую вы используете в каждой из ваших моделей. Это даст вам доступ ко всем вашим свойствам, которые вам нужны на вашей странице макета. – Martin