Пример #1
0
        public String ValidaRoles(string userId)
        {
            HttpContext ctx = System.Web.HttpContext.Current;

            MetodosOperacion MO = new MetodosOperacion();
            String domainAndUsername = "******" + @"\" + userId;
            //Administradores Gestion Mensajeria|Ingreso Campañas Gestion de Mensajeria
            String valor = MO.GetGroups(domainAndUsername, Roles);
            return valor;
        }
        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();
        }