Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Dados dos Usuários

Boa tarde, preciso trazer todos campos do ApplicationUser(campos personalizado como nome endereço) para sempre estar disponivel no sistema,

using Microsoft.AspNet.Identity;
User.Identity.GetUserName();

Nessa forma pego somente o que é padrão do Identity

 var usuario = await UserManager.FindByEmailAsync(loginModel.Email);

                if (loginModel == null)
                    return SenhaOuUsuarioInvalido();

                var signInResultado =
                    await SignInManager.PasswordSignInAsync(
                        usuario.UserName,
                        loginModel.Password,
                        isPersistent: true,
                        shouldLockout: true);


                switch (signInResultado)
                {
                    case SignInStatus.Success:

                        return RedirectToAction("Index", "Home");
4 respostas
solução!

Olá, Flávio. Tudo bom?

Não ficou claro para mim. Sua chamada await UserManager.FindByEmailAsync(loginModel.Email); está trazendo apenas os valores da classe ApplicationUser?

O método User.Identity.GetUserName() é um método do System.Web. Para usar em conjunto com o AspNet Identity você precisará usar o UserManager também em uma chamada como:

var usuario = await UserManager.FindByIdAsync(User.Identity.GetUserId());

O que você acha? Isto resolve seu problema?

Abs e bons estudos.

Boa tarde,

o login esta funcionando corretamente.

como pego as informações personalizada que tenho depois do login, e insiro numa view "perfil" mostre todos dados. tenho que criar um ModelView com construtor com todos os campos e injetar o var usuario ?

Isso.

Então você vai ter algo como:

[HttpGet]
public async Task<ActionResult> MeuPerfil()
{
    var usuario = await UserManager.FindByIdAsync(User.Identity.GetUserId());
    var modelo = new MeuPerfilViewModel(usuario);

    return View(modelo);
}

Mas, a longo prazo, você vai perceber que escrever código para mapear uma entidade para sua ViewModel é um tanto quanto entediante. Uma biblioteca que recomendo que você dê uma olhada é o https://automapper.org/

Boa tarde,

Resolvido, usei o mapper. ótima biblioteca, obrigado

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software