public DomainsUrl(DomainUrlInfo domainInfo) { this.DomainDN = domainInfo.DomainDN; this.DomainName = domainInfo.DomainName; this.LDAPPath = domainInfo.LDAPPath; this.Pwd = domainInfo.Pwd; this.Usr = domainInfo.Usr; }
private void cmbDomains_SelectedIndexChanged(object sender, EventArgs e) { _DomainUrlInfo = (DomainUrlInfo)cmbDomains.SelectedItem;//urls.Find(p => p.DomainName.Equals(txtDomain.Text,StringComparison.CurrentCultureIgnoreCase)); if (_DomainUrlInfo == null) { return; } lblURL.Text = _DomainUrlInfo.LDAPPath; }
/// <summary> /// Busca un objeto <see cref="ADWrapper"/> si no lo encuentra intenta crearlo e insertarlo al diccionario.- /// La creacion del diccionario se hace para no instanciar cientos de veses la clase ADWrapper. ya que esta tarea requiere ,mas uso de CPU que el costo de mantener en memoria /// un diccionario con porcos ADWrapper. /// En el mundo reali no existiran gran cantidad de clases ADWrapper, pero si muchas quisa cientos de ejecuciones del metodos de autenticacio, q son los que /// crearian instancias de ADWrapper.- /// </summary> /// <param name="domainName">Nombre del dominio</param> /// <returns></returns> internal static ADWrapper Find_ADWrapper(string domainName) { // Si ADWrapper no esta en el diccionario lo intenta agregar if (_ADWrapperDictionary.ContainsKey(domainName) == false) { DomainUrlInfo di = StaticsValues.Find_DomainUrlInfo(domainName); ADWrapper ad = new Fwk.Security.ActiveDirectory.ADWrapper(di.LDAPPath, di.Usr, di.Pwd); _ADWrapperDictionary.Add(domainName, ad); return(ad); } //Si el codigo pasa por aqui es por que existe return(_ADWrapperDictionary[domainName]); }
///// <summary> ///// Busca la lista de dominios en una base de datos ///// </summary> ///// <param name="cnnStringName">Nombre de la cadena de coneccion configurada</param> ///// <returns>Lista de DomainsUrl</returns> //public static List<DomainUrlInfo> DomainsUrl_GetList(string cnnString) //{ // return DomainsUrl_GetList2(System.Configuration.ConfigurationManager.ConnectionStrings[cnnStringName].ConnectionString); //} ///// <summary> ///// Busca la lista de dominios en una base de datos.- A diferencia de DomainsUrl_GetList. Este metodo recive como parametro ///// la cadena de coneccion y no su nombre de App.config ///// </summary> ///// <param name="cnnString">Cadena de coneccion</param> ///// <returns>Lista de DomainsUrl</returns> //public static List<DomainUrlInfo> DomainsUrl_GetList2(string cnnString) //{ // List<DomainUrlInfo> wDomainUrlInfoList = new List<DomainUrlInfo>(); // try // { // using (SqlDomainURLDataContext dc = new SqlDomainURLDataContext(cnnString)) // { // IEnumerable<DomainUrlInfo> liste = from s in dc.DomainsUrls // select new DomainUrlInfo // { // DomainName = s.DomainName, // LDAPPath = s.LDAPPath, // Id = s.DomainID, // SiteName = s.SiteName, // DomainDN = s.DomainDN // }; // return liste.ToList<DomainUrlInfo>(); // } // } // catch (Exception ex) // { // Fwk.Exceptions.TechnicalException te = new Fwk.Exceptions.TechnicalException("Error al intentar obtener la lista de dominios 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="cnnString">Nombre de la cadena de cnn</param> /// <returns></returns> public static List <DomainUrlInfo> DomainsUrl_Get_FromSp_all(string cnnString) { string wApplicationId = string.Empty; DomainUrlInfo wDomainUrlInfo = null; List <DomainUrlInfo> list = new List <DomainUrlInfo>(); try { var connectionString = CommonHelpers.GetCnn(cnnString).ConnectionString; using (SqlConnection cnn = new SqlConnection(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); te.ErrorId = "15004"; throw te; } }
/// <summary> /// Intenta buscar un objeto <see cref="DomainUrlInfo"/> /// Si no lo encuenta lanza una TechnicalException con ErrorId = 4001 /// </summary> /// <param name="domainName"></param> /// <returns></returns> internal static DomainUrlInfo Find_DomainUrlInfo(string domainName) { if (_DomainUrlList == null) { _DomainUrlList = Fwk.Security.ActiveDirectory.ADWrapper.DomainsUrl_GetList(string.Empty); } DomainUrlInfo wDomainUrlInfo = _DomainUrlList.Find(p => p.DomainName.Equals(domainName, StringComparison.InvariantCultureIgnoreCase)); if (wDomainUrlInfo == null) { TechnicalException te = new TechnicalException(string.Format(Resource.AD_NotExistDomainsURL, domainName)); te.ErrorId = "4001"; te.Source = "FwkMembership block"; Fwk.Exceptions.ExceptionHelper.SetTechnicalException <FwkMembership>(te); throw te; } return(wDomainUrlInfo); }