/// <summary> /// Inicializa buscando la info de cada dominio en la bd /// </summary> /// <param name="domainName"></param> /// <param name="cnnStringName"></param> /// <param name="performWindowsContextImpersonalization"></param> private void Init(string domainName, string cnnStringName, bool performWindowsContextImpersonalization) { DomainUrlInfo domainUrlInfo = DomainsUrl_Get_FromSp(cnnStringName, domainName); if (domainUrlInfo == null) { throw new Fwk.Exceptions.TechnicalException("No se encontró la información del dominio especificado"); } _LDAPPath = domainUrlInfo.LDAPPath; _LDAPUser = FilterOutDomain(domainUrlInfo.Usr); _LDAPPassword = domainUrlInfo.Pwd; _LDAPDomainName = domainName; domainUrlInfo = null; if (performWindowsContextImpersonalization) { ImpersonateWindowsContext(); } try { _directoryEntrySearchRoot = new DirectoryEntry(_LDAPPath, _LDAPUser, _LDAPPassword, AuthenticationTypes.Secure); _LDAPDomain = GetValue(GetProperty(_directoryEntrySearchRoot, ADProperties.DISTINGUISHEDNAME), "DC"); } catch (TechnicalException e) // Cuando el usuario no existe o clave erronea { Exception te1 = ProcessActiveDirectoryException(e); TechnicalException te = new TechnicalException(string.Format(Resource.AD_Impersonation_Error, te1.Message), te1.InnerException); ExceptionHelper.SetTechnicalException <ADWrapper>(te); te.ErrorId = "4103"; throw te; } }
void Init(String domainName, String connStringName, Boolean pSecure, bool chekControllers) { //_LdapWrapper = new LdapWrapper(); //LoadControllersFromDatabase( pConnString); _DomainUrlInfo = DomainsUrl_Get_FromSp(connStringName, domainName);// _DomainUrlInfoList.First<DomainUrlInfo>(p => p.DomainName == domainName); if (_DomainUrlInfo == null) { throw new Fwk.Exceptions.TechnicalException("No se encontró la información del dominio especificado"); } if (chekControllers) { _DomainControllers = GetDomainControllersByDomainId(System.Configuration.ConfigurationManager.ConnectionStrings[connStringName].ConnectionString, _DomainUrlInfo.Id); if (_DomainControllers == null || _DomainControllers.Count == 0) throw new Fwk.Exceptions.TechnicalException("No se encuentra configurado ningún controlador de dominio para el sitio especificado."); // Prueba de conectarse a algún controlador de dominio disponible, siempre arranando del primero. debería // TODO: reemplazarse por un sistema de prioridad automática para que no intente conectarse primero a los funcionales conocidos //LdapException wLastExcept = GetDomainController(pSecure, _DomainControllers); if (_DomainController == null) { throw new Fwk.Exceptions.TechnicalException("No se encontró ningún controlador de dominio disponible para el sitio especificado.");//, wLastExcept); } } }
void Init(String domainName, String connStringName, Boolean pSecure, bool chekControllers) { //_LdapWrapper = new LdapWrapper(); //LoadControllersFromDatabase( pConnString); _DomainUrlInfo = DomainsUrl_Get_FromSp(connStringName, domainName);// _DomainUrlInfoList.First<DomainUrlInfo>(p => p.DomainName == domainName); if (_DomainUrlInfo == null) { throw new Fwk.Exceptions.TechnicalException("No se encontró la información del dominio especificado"); } if (chekControllers) { _DomainControllers = GetDomainControllersByDomainId(System.Configuration.ConfigurationManager.ConnectionStrings[connStringName].ConnectionString, _DomainUrlInfo.Id); if (_DomainControllers == null || _DomainControllers.Count == 0) { throw new Fwk.Exceptions.TechnicalException("No se encuentra configurado ningún controlador de dominio para el sitio especificado."); } // Prueba de conectarse a algún controlador de dominio disponible, siempre arranando del primero. debería // TODO: reemplazarse por un sistema de prioridad automática para que no intente conectarse primero a los funcionales conocidos //LdapException wLastExcept = GetDomainController(pSecure, _DomainControllers); if (_DomainController == null) { throw new Fwk.Exceptions.TechnicalException("No se encontró ningún controlador de dominio disponible para el sitio especificado.");//, wLastExcept); } } }
public DomainsUrl(DomainUrlInfo domainInfo) { this.DomainDN = domainInfo.DomainDN; this.DomainName = domainInfo.DomainName; this.LDAPPath = domainInfo.LDAPPath; this.Pwd = domainInfo.Pwd; this.Usr = domainInfo.Usr; }
/// <summary> /// Retorna todos los DolmainUrl por medio de un sp usp_GetDomainsUrl_All que lee de bd encriptada /// </summary> /// <param name="cnnStringName">Nombre de la cadena de cnn</param> /// <returns></returns> public static List <DomainUrlInfo> DomainsUrl_Get_FromSp_all(string cnnStringName) { String wApplicationId = String.Empty; DomainUrlInfo wDomainUrlInfo = null; List <DomainUrlInfo> list = new List <DomainUrlInfo>(); try { using (SqlConnection cnn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings[cnnStringName].ConnectionString)) using (SqlCommand cmd = new SqlCommand("dbo.usp_GetDomainsUrl_All", cnn)) { cmd.CommandType = CommandType.StoredProcedure; cnn.Open(); using (IDataReader dr = cmd.ExecuteReader()) { while (dr.Read()) { wDomainUrlInfo = new DomainUrlInfo(); wDomainUrlInfo.DomainDN = dr["DomainDN"].ToString(); wDomainUrlInfo.DomainName = dr["DomainName"].ToString(); wDomainUrlInfo.LDAPPath = dr["LDAPPath"].ToString(); wDomainUrlInfo.Pwd = dr["Pwd"].ToString(); wDomainUrlInfo.SiteName = dr["SiteName"].ToString(); wDomainUrlInfo.Usr = dr["Usr"].ToString(); list.Add(wDomainUrlInfo); } } return(list); } } catch (Exception ex) { Fwk.Exceptions.TechnicalException te = new Fwk.Exceptions.TechnicalException("Error al intentar obtener los datos del dominio desde la base de datos: ", ex); LDAPHelper.SetError(te); te.ErrorId = "15004"; throw te; } }
void Init() { DatabaseFactory.SetDatabaseProviderFactory(new DatabaseProviderFactory()); _Storage.Load(); usernameTextBox.Text = _Storage.StorageObject.user; passwordTextBox.Text = _Storage.StorageObject.pwd; cmbAllDomains.Text = _Storage.StorageObject.Domain; List <Fwk.Security.ActiveDirectory.DomainUrlInfo> wDomainUrlInfoList = new List <Fwk.Security.ActiveDirectory.DomainUrlInfo>(); try { var d2 = ActiveDirectoryService.GetAllDomainsUrl(); foreach (Fwk.CentralizedSecurity.Contracts.DomainsUrl domainUrlItem in d2) { Fwk.Security.ActiveDirectory.DomainUrlInfo item = new Fwk.Security.ActiveDirectory.DomainUrlInfo(); item.DomainDN = domainUrlItem.DomainDN; item.DomainName = domainUrlItem.DomainName; item.LDAPPath = domainUrlItem.LDAPPath; item.Id = domainUrlItem.Id; item.Pwd = domainUrlItem.Pwd; item.Usr = domainUrlItem.Usr; item.SiteName = domainUrlItem.SiteName; wDomainUrlInfoList.Add(item); } string cnnString = System.Configuration.ConfigurationManager.ConnectionStrings[ActiveDirectoryService.CnnStringName].ConnectionString; txtCnnString.Text = cnnString; //List<DomainUrlInfo> // var d = DirectoryServicesBase.DomainsUrl_Get_FromSp_all(ActiveDirectoryService.CnnStringName); cmbAllDomains.DataSource = wDomainUrlInfoList; cmbAllDomains.SelectedIndex = 0; } catch (Exception ex) { txtErr.Text = Fwk.Exceptions.ExceptionHelper.GetAllMessageException(ex); } }
/// <summary> /// No realiza busquedas en base de datos de los controladores decominio /// </summary> /// <param name="domainUrlInfo"></param> public LDAPHelper(DomainUrlInfo domainUrlInfo) { _DomainUrlInfo = domainUrlInfo; }
/// <summary> /// Retorna DolmainUrl por medio de un sp usp_GetDomainsUrl_ByDomainName que lee de bd encriptada /// </summary> /// <param name="cnnStringName">Nombre de la cadena de cnn</param> /// <param name="domainName">ej Allus-Ar</param> /// <returns></returns> public static DomainUrlInfo DomainsUrl_Get_FromSp(string cnnStringName, string domainName) { String wApplicationId = String.Empty; Database dataBase = null; DbCommand cmd = null; DomainUrlInfo wDomainUrlInfo = null; try { dataBase = DatabaseFactory.CreateDatabase(cnnStringName); cmd = dataBase.GetStoredProcCommand("dbo.usp_GetDomainsUrl_ByDomainName"); // ApplicationName dataBase.AddInParameter(cmd, "pDomainName", System.Data.DbType.String, domainName); using (IDataReader dr = dataBase.ExecuteReader(cmd)) { while (dr.Read()) { wDomainUrlInfo = new DomainUrlInfo(); wDomainUrlInfo.DomainDN = dr["DomainDN"].ToString(); wDomainUrlInfo.DomainName = dr["DomainName"].ToString(); wDomainUrlInfo.LDAPPath = dr["LDAPPath"].ToString(); wDomainUrlInfo.Pwd = dr["Pwd"].ToString(); wDomainUrlInfo.SiteName = dr["SiteName"].ToString(); wDomainUrlInfo.Usr = dr["Usr"].ToString(); } } return wDomainUrlInfo; } catch (Exception ex) { Fwk.Exceptions.TechnicalException te = new Fwk.Exceptions.TechnicalException("Error al intentar obtener los datos del dominio desde la base de datos: ", ex); LDAPHelper.SetError(te); te.ErrorId = "15004"; throw te; } }
/// <summary> /// Retorna todos los DolmainUrl por medio de un sp usp_GetDomainsUrl_All que lee de bd encriptada /// </summary> /// <param name="cnnStringName">Nombre de la cadena de cnn</param> /// <returns></returns> public static List<DomainUrlInfo> DomainsUrl_Get_FromSp_all(string cnnStringName) { String wApplicationId = String.Empty; Database dataBase = null; DbCommand cmd = null; DomainUrlInfo wDomainUrlInfo = null; List<DomainUrlInfo> list = new List<DomainUrlInfo>(); try { dataBase = DatabaseFactory.CreateDatabase(cnnStringName); cmd = dataBase.GetStoredProcCommand("dbo.usp_GetDomainsUrl_All"); using (IDataReader dr = dataBase.ExecuteReader(cmd)) { while (dr.Read()) { wDomainUrlInfo = new DomainUrlInfo(); wDomainUrlInfo.DomainDN = dr["DomainDN"].ToString(); wDomainUrlInfo.DomainName = dr["DomainName"].ToString(); wDomainUrlInfo.LDAPPath = dr["LDAPPath"].ToString(); wDomainUrlInfo.Pwd = dr["Pwd"].ToString(); wDomainUrlInfo.SiteName = dr["SiteName"].ToString(); wDomainUrlInfo.Usr = dr["Usr"].ToString(); list.Add(wDomainUrlInfo); } } return list; } catch (Exception ex) { Fwk.Exceptions.TechnicalException te = new Fwk.Exceptions.TechnicalException("Error al intentar obtener los datos del dominio desde la base de datos: ", ex); LDAPHelper.SetError(te); te.ErrorId = "15004"; throw te; } }