private void DataPortal_Fetch(FiltroGRomero criteria) { //Logueo en el Dominio //Usamos los servicios del Active Directory if (criteria.Dominio.ToLower() == "local") { // Lo validamos con el usuario de la PC. if (Environment.MachineName == Environment.UserDomainName) { // La PC actual no está en una red de Dominio. IsAuthenticated = true; Name = Environment.UserName; AuthenticationType = "Csla"; return; } } // Debemos buscar la ruta del Dominio en la tabla Dominios. var RutaDominio = string.Empty; using (var cn = new SqlConnection(BaseDatos.ConexionBD)) { using (var cmd = cn.CreateCommand()) { cmd.CommandText = "SELECT RutaDominio FROM Dominios WHERE NombreCorto = @NombreCorto"; cmd.Parameters.AddWithValue("@NombreCorto", criteria.Dominio); cn.Open(); RutaDominio = cmd.ExecuteScalar() as string; if (RutaDominio == null) { throw new InvalidOperationException(string.Format("El Dominio {0} no se ubica en la tabla Dominios", criteria.Dominio)); } } } IsAuthenticated = GRomeroDirectory.LoguearEnDominio(new WinCredentials( criteria.Username, criteria.Password, RutaDominio)); if (IsAuthenticated) { Name = criteria.Username; AuthenticationType = "Csla"; } else { SetNonUserData(); } }
public static UsuarioADInfoList GetUsuarioADInfoList(FiltroAD filtro) { var obj = new UsuarioADInfoList(); var credenciales = new WinCredentials(filtro.Dominio); credenciales.FormateaDominio(); //Invocamos la función que nos permite acceder a la información del AD actual foreach (var item in GRomeroDirectory.GetPersonsInDirectory(filtro.ValorBusqueda, credenciales)) { obj.Add(item); } return(obj); }