public async Task<ActionResult> Login(Validacion model, string returnUrl) { if (ModelState.IsValid) { //var user = await UserManager.CreateAsync(model.UserName, model.Password); String path = "LDAP://TVCABLEUIO"; MetodosOperacion MO = new MetodosOperacion(); String domainAndUsername = "******" + @"\" + model.UserName; if (MO.ValidarUsuarioActiveDirectory(path, domainAndUsername, model.Password)) { String gruposUsuario = MO.ValidaRoles(model.UserName); String grupos = gruposUsuario.ToString(); String usuarioNegocio = "Usuarionegocio SGR"; int firstCharacterNegocio = grupos.IndexOf(usuarioNegocio); String usuarioAdmin = "Administrador SGR"; int firstCharacterAdmin = grupos.IndexOf(usuarioAdmin); String usuarioProd = "Produccion SGR"; int firstCharacterProd = grupos.IndexOf(usuarioProd); if (firstCharacterNegocio == -1 && firstCharacterAdmin == -1 && firstCharacterProd == -1) { ModelState.AddModelError("", "El Usuario no tiene acceso a la aplicación."); } else { if (Membership.ValidateUser(model.UserName, model.Password)) { FormsAuthentication.SetAuthCookie(model.UserName, false); HttpContext.Session.Add("_Sessiongrupos", grupos); HttpContext.Session.Add("_SessionUsuario", model.UserName); return RedirectToAction("Index", "Perfiles"); } } } else { ModelState.AddModelError("", "El nombre de usuario o la contraseña especificados son incorrectos."); } } //return RedirectToAction("Perfiles", "Perfiles"); // Si llegamos a este punto, es que se ha producido un error y volvemos a mostrar el formulario return View(); }
public async Task<ActionResult> Index(Validacion model, string returnUrl) { if (ModelState.IsValid) { var user = await UserManager.FindAsync(model.UserName, model.Password); if (user != null) { await SignInAsync(user, model.RememberMe); return RedirectToLocal(returnUrl); } else { ModelState.AddModelError("", "Invalid username or password."); } } // Si llegamos a este punto, es que se ha producido un error y volvemos a mostrar el formulario return View(model); }