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(); }