Example #1
0
      /// <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;
          }
      }
Example #2
0
        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);
                }
            }
        }
Example #3
0
        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);
                }
            }
        }
Example #4
0
 public DomainsUrl(DomainUrlInfo domainInfo)
 {
     this.DomainDN = domainInfo.DomainDN;
     this.DomainName = domainInfo.DomainName;
     this.LDAPPath = domainInfo.LDAPPath;
     this.Pwd = domainInfo.Pwd;
     this.Usr = domainInfo.Usr;
 }
Example #5
0
        /// <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;
            }
        }
Example #6
0
        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);
            }
        }
Example #7
0
 /// <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;
            }
        }