2014-09-03 5 views
9

Я добавил имя и фамилию ApplicationUser Класс.MVC User.Identity.Name с фамилией

public class ApplicationUser : IdentityUser 
    { 
     public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager) 
     { 
      // Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType 
      var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie); 
      // Add custom user claims here 
      return userIdentity; 
     } 

     public string FirstName { get; set; } 
     public string LastName { get; set; } 
    } 

также добавил информацию RegisterViewModel

Моя заявка успешно создана Первая и LastName к столу, но я не могу получить имя и фамилию, чтобы отобразить в _LoginPartial «Пользователь.Идентичность.Имя»

ответ

10

в вашем PartialView _LoginPartial.cshtml

Добавьте код:

@if (Request.IsAuthenticated) 
{ 
    var manager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext())); 
    var user = manager.FindById(User.Identity.GetUserId()); 
... 
} 

ApplicationDbContext = Ваш DbContext -> По умолчанию: ApplicationDbContext

С экземпляром ApplicationUser (user) вы можете получить First- и LastName -property

Заменить User.Identity.Name с user.FirstName + " " + user.LastName, как это:

<ul class="nav navbar-nav navbar-right"> 
    <li> 
     @Html.ActionLink("Hello " + user.FirstName + " " + user.LastName + "!", "Manage", "Account", routeValues: null, htmlAttributes: new { title = "Manage" }) 
    </li> 
    <li><a href="javascript:document.getElementById('logoutForm').submit()">Log off</a></li> 
</ul> 
+0

nope !, не дает мне «GetName» – Emil

+0

Имя и фамилия в таблице правильные? –

+0

да что есть, но «User.Identity», похоже, не имеет информации – Emil

3

Вы» вам нужно будет добавлять имена в качестве претензии на пользователя, когда пользователь вошел в систему. Затем в ваших представлениях обращаются эти претензии от ClaimsPrincipal.Current.Claims. Посмотрите на my answer here, который делает практически то же самое, только вам нужно добавлять имена вместо темы.

Смежные вопросы