public String Login(string username, string password, string dominio) { try { string value = ""; using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, dominio)) { Boolean isValid = false; // validate the credentials isValid = pc.ValidateCredentials(username, password); EmpleadosCOM empleados = new EmpleadosCOM(); DataTable dt = empleados.GetLogin(username, ""); if (isValid && dt.Rows.Count > 0) { value = JsonConvert.SerializeObject(dt); } } return(value); } catch (Exception ex) { return(""); } }
private Boolean LoginActive(string username, string password, string dominio) { try { // create a "principal context" - e.g. your domain (could be machine, too) using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, dominio)) { Boolean isValid = false; // validate the credentials isValid = pc.ValidateCredentials(username, password); Employee entidad = new Employee(); entidad.Usuario_Red = username.Trim(); EmpleadosCOM empleados = new EmpleadosCOM(); string finger_print = hdffinger.Value.Trim(); DataTable dt = empleados.GetLogin(username, finger_print); string vmensaje = ""; if ((isValid || dt.Rows.Count > 0) && finger_print != "") { isValid = true; DataRow row = dt.Rows[0]; String os = hdfos.Value.Trim(); String os_vers = hdfosversion.Value.Trim(); String browser = hdfbrowser.Value.Trim(); String device = hdfdevice.Value.Trim(); String ip = hdfip.Value.Trim(); String lat = hdflatitud.Value.Trim(); String lon = hdflongitud.Value.Trim(); String region = hdfregion.Value.Trim(); String proveedor = hdfproveedor.Value.Trim(); String modelo = hdfmodel.Value.Trim(); bool bloqueado = Convert.ToBoolean(row["dispositivo_bloqueado"]); if (bloqueado) { vmensaje = "Este dispostivo(" + device + " " + modelo + " " + os + " " + os_vers + ") fue bloqueado para el inicio de sesión. Si usted no realizo esta configuración, comuniquese al departamento de sistemas."; isValid = false; } else { string adress = ""; if (Convert.ToInt32(row["num_empleado"]) > 0) { DirectoryInfo dirInfo = new DirectoryInfo(Server.MapPath("~/img/users/"));//path local DirectoryEntry directoryEntry = new DirectoryEntry("LDAP://" + dominio, username, password); //Create a searcher on your DirectoryEntry DirectorySearcher adSearch = new DirectorySearcher(directoryEntry); adSearch.SearchScope = SearchScope.Subtree; //Look into all subtree during the search adSearch.Filter = "(&(ObjectClass=user)(sAMAccountName=" + username + "))"; //Filter information, here i'm looking at a user with given username SearchResult sResult = adSearch.FindOne(); //username is unique, so I want to find only one string name = dirInfo.ToString() + username + ".png"; string imagen = ""; if (!File.Exists(name)) { if (sResult.Properties["thumbnailPhoto"].Count > 0) { byte[] array_img = sResult.Properties["thumbnailPhoto"][0] as byte[]; //Get the property info imagen = GuardarImagenUsuario(array_img, username + ".png"); } } adress = sResult.Properties["mail"][0].ToString(); } string nombre = Convert.ToInt32(row["num_empleado"]) > 0?(funciones.SplitLastIndex(row["First_Name"].ToString().Trim(), ' ') + " " + funciones.SplitLastIndex(row["Last_Name"].ToString().Trim(), ' ')): row["First_Name"].ToString().Trim() + " " + row["Last_Name"].ToString().Trim(); string puesto = (row["puesto"].ToString().Trim()); string perfil = row["perfil"].ToString().Trim().ToLower(); //pasamos aminusculas nombre = nombre.ToLower(); puesto = puesto.ToLower(); nombre = nombre.Replace(" ", " "); //pasamos a estilos title Session["mail"] = adress; Session["imagen"] = username + ".png"; Session["usuario"] = username; Session["password"] = password; Session["contraseña"] = password; string nombre_pro = row["nombre_provicional"].ToString(); Session["nombre"] = nombre_pro != "" ? nombre_pro : CultureInfo.InvariantCulture.TextInfo.ToTitleCase(nombre); Session["correo"] = row["Company_E_Mail"].ToString().Trim().ToLower(); Session["puesto"] = CultureInfo.InvariantCulture.TextInfo.ToTitleCase(puesto); Session["perfil"] = CultureInfo.InvariantCulture.TextInfo.ToTitleCase(perfil); Session["id_perfil"] = Convert.ToInt32(row["id_perfil"]); Session["NumJefe"] = Convert.ToInt32(row["NumJefe"]); Session["num_empleado"] = Convert.ToInt32(row["num_empleado"]); Session["mostrar_recordatorios"] = Convert.ToBoolean(row["mostrar_recordatorios"]); Session["alerta_inicio_sesion"] = Convert.ToBoolean(row["alerta_inicio_sesion"]); bool ver_Todos = Convert.ToBoolean(row["ver_todos_empleados"]); Session["ver_Todos_los_empleados"] = ver_Todos; DateTime fecha_inicio_sesion = DateTime.Now; Session["os"] = os; Session["os_vers"] = os_vers; Session["browser"] = browser; Session["device"] = device; Session["ip"] = ip; Session["fecha_inicio_sesion"] = fecha_inicio_sesion; usuarios_sesiones e = new usuarios_sesiones(); UsuariosSesionesCOM sesion = new UsuariosSesionesCOM(); e.usuario = username.Trim().ToUpper(); e.os = os; e.os_version = os_vers; e.navegador = browser; e.fecha_inicio_sesion = DateTime.Now; e.ip = ip; e.device = device; e.latitud = lat; e.longitud = lon; e.region = region; e.proveedor = proveedor; e.model = modelo; e.activo = true; e.device_fingerprint = finger_print; int id_usuario_sesion = sesion.Exist(e.usuario, e.device_fingerprint) ? sesion.Editar(e):sesion.Agregar(e); UsuariosCOM usuarios_ = new UsuariosCOM(); usuarios usuario = new usuarios { usuario = username.ToUpper().Trim(), temporal = false, fecha_vencimiento = null, contraseña = funciones.deTextoa64(password), puesto = CultureInfo.InvariantCulture.TextInfo.ToTitleCase(puesto), nombres = CultureInfo.InvariantCulture.TextInfo.ToTitleCase(row["First_Name"].ToString()), a_paterno = CultureInfo.InvariantCulture.TextInfo.ToTitleCase(row["Last_Name"].ToString()), correo = row["Company_E_Mail"].ToString().Trim().ToLower(), usuario_alta = username.ToUpper().Trim(), No_ = Convert.ToInt32(row["num_empleado"]).ToString(), path_imagen = username + ".png" }; if (!usuarios_.Exist(username)) { usuarios_.Agregar(usuario); } else { usuarios_.Editar(usuario); } if (id_usuario_sesion > 0) { Session["devices_conectados"] = UpdateDevices(username); Session["id_usuario_sesion"] = id_usuario_sesion; } else { vmensaje = "No se pudo registrar el inicio de sesión en el servidor. Intentelo nuevamente."; isValid = false; } } } else { vmensaje = "Credenciales invalidas"; } if (vmensaje != "") { Toast.Error(vmensaje, this); isValid = false; } return(isValid); } } catch (Exception ex) { Toast.Error(ex.Message, this); return(false); } }
private Boolean LoginActive(string username, string password, string dominio) { try { // create a "principal context" - e.g. your domain (could be machine, too) using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, dominio)) { Boolean isValid = false; // validate the credentials isValid = pc.ValidateCredentials(username, password); Employee entidad = new Employee(); entidad.Usuario_Red = username.Trim(); EmpleadosCOM empleados = new EmpleadosCOM(); DataTable dt = empleados.GetLogin(username); if (isValid && dt.Rows.Count > 0) { DataRow row = dt.Rows[0]; string nombre = String.Empty; string puesto = String.Empty; //recuperamos datos nombre = (funciones.SplitLastIndex(row["First_Name"].ToString().Trim(), ' ') + " " + funciones.SplitLastIndex(row["Last_Name"].ToString().Trim(), ' ')); puesto = (row["puesto"].ToString().Trim()); //pasamos aminusculas nombre = nombre.ToLower(); puesto = puesto.ToLower(); //pasamos a estilos title String nombre_user = CultureInfo.InvariantCulture.TextInfo.ToTitleCase(nombre); String puesto_user = CultureInfo.InvariantCulture.TextInfo.ToTitleCase(puesto); UsuariosCOM pusuarios = new UsuariosCOM(); DataTable dt_usuario = pusuarios.Login(username.Trim(), funciones.deTextoa64(password.Trim()), false).Tables[0]; if (dt_usuario.Rows.Count == 0)//no existe, lo agregamos a usuarios internos { usuarios entidadus = new usuarios(); entidadus.id_cliente = null; entidadus.id_uperfil = 3; entidadus.usuario = username.Trim(); entidadus.password = funciones.deTextoa64(password.Trim()); pusuarios.Agregar(entidadus); dt_usuario = pusuarios.Login(username.Trim(), funciones.deTextoa64(password.Trim()), false).Tables[0]; } bool admin = dt_usuario.Rows.Count > 0 ? Convert.ToBoolean(dt_usuario.Rows[0]["administrador"]) : false; Session["usuario"] = username; Session["vista_arbol_mapa_tareas"] = dt_usuario.Rows.Count > 0 ? Convert.ToBoolean(dt_usuario.Rows[0]["vista_arbol_mapa_tareas"]) : true; Session["vista_grafica_milestones"] = dt_usuario.Rows.Count > 0 ? Convert.ToBoolean(dt_usuario.Rows[0]["vista_grafica_milestones"]) : true; Session["password"] = password; Session["contraseña"] = password; Session["nombre"] = nombre_user; Session["correo_pm"] = row["Company_E_Mail"].ToString().Trim().ToLower(); Session["id_usuario"] = Convert.ToInt32(dt_usuario.Rows[0]["id_usuario"]); Session["id_uperfil"] = Convert.ToInt32(dt_usuario.Rows[0]["id_uperfil"]); Session["imagen"] = dt_usuario.Rows[0]["imagen"].ToString().Trim(); Session["puesto"] = puesto_user; Session["administrador"] = admin; Session["cliente"] = false; Session["id_cliente"] = 0; } else { isValid = false; } return(isValid); } } catch (Exception ex) { return(false); } }