public async Task <IActionResult> Login(LoginViewModel args, string returnUrl) { //ViewData["ReturnUrl"] = returnUrl; if (!ModelState.IsValid) { return(View(args)); } try { var usuario = await oUsuario.LogIn(args); var persona = await oUsuario.GetPersonaByPrimary(usuario.idPersona); if (usuario != null) { //Guardar Session en Cookie var lista = new List <Estado>(); var claims = new List <Claim>() { new Claim("idUsuario", usuario.idUsuario.ToString()), new Claim("idRol", usuario.idRol.ToString()), new Claim("idPersona", persona.idPersona.ToString()), new Claim("idTipoPersona", persona.idTipoPersona.ToString()), new Claim(ClaimTypes.Name, $"{persona.nombrePersona} {persona.apellidoPersona}") }; var userIdentity = new ClaimsIdentity(claims, "login"); ClaimsPrincipal principal = new ClaimsPrincipal(userIdentity); await HttpContext.SignInAsync(principal); return(RedirectToAction("Index", "Ticket")); } } catch (Exception e) { ModelState.AddModelError("", "Usuario o clave invalido!"); } return(View(args)); }
public async Task <IActionResult> Create() { var model = new UsuarioCompletoViewModel(); Usuario user = await oPersona.GetByPrimary(Convert.ToInt32(User.FindFirstValue("idUsuario"))); Persona persona = await oPersona.GetPersonaByPrimary(Convert.ToInt32(User.FindFirstValue("idPersona"))); var modelC = new PersonaCompletaViewModel() { idTipoPersona = persona.idTipoPersona, idPersona = persona.idPersona, nombrePersona = persona.nombrePersona, apellidoPersona = persona.apellidoPersona, direccionPersona = persona.direccionPersona, telefono = persona.telefono, correo = persona.correo, cedulaPersona = persona.cedulaPersona, fechaNacimiento = persona.fechaNacimiento, stringTipoPersona = _db.TipoPersona.SingleOrDefault(y => y.idTipoPersona == persona.idTipoPersona).nombreTipoPersona }; if (_db.TipoPersona.SingleOrDefault(s => s.idTipoPersona == persona.idTipoPersona).nombreTipoPersona == "Estudiante") { modelC.estudiante = _db.Estudiantes.SingleOrDefault(x => x.idPersona == persona.idPersona); } else { modelC.profesor = _db.Profesores.SingleOrDefault(x => x.idPersona == persona.idPersona); } model.idUsuario = user.idUsuario; model.idPersona = user.idPersona; model.idRol = user.idRol; model.nombreUsuario = user.nombreUsuario; model.persona = modelC; return(View(model)); }