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();
        }
Пример #2
0
        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);
        }