示例#1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="dbData"></param>
        /// <returns></returns>
        private bool initializeDbData(DataTable dbData)
        {
            if (dbData == null || dbData.Rows == null || dbData.Rows.Count <= 0)
            {
                return(false);
            }

            int idx = 0;

            foreach (DataRow dR in dbData.Rows)
            {
                if (dR == null || dR.ItemArray.Length <= 0)
                {
                    continue;
                }

                //Get critical fields first
                var dbEnStr      = Utilities.GetStringValue(dR["ENABLED"], "0");
                var dbEnabled    = (dbEnStr.Equals("1"));
                var dbUserEnc    = Utilities.GetStringValue(dR["DBUSER"], string.Empty);
                var dbUserPwdEnc = Utilities.GetStringValue(dR["DBUSERPWD"], string.Empty);

                //Create database vo object and initialize
                var dVO = new DatabaseServiceVO(dbUserEnc, dbUserPwdEnc, dbEnabled);
                dVO.Id          = Utilities.GetULongValue(dR["ID"], 0L);
                dVO.Name        = Utilities.GetStringValue(dR["NAME"], string.Empty);
                dVO.ServiceType = Utilities.GetStringValue(dR["SERVICETYPE"], string.Empty);
                dVO.Server      = Utilities.GetStringValue(dR["SERVER"], string.Empty);
                dVO.Port        = Utilities.GetStringValue(dR["PORT"], string.Empty);
                dVO.Schema      = Utilities.GetStringValue(dR["SCHEMA"], string.Empty);
                dVO.AuxInfo     = Utilities.GetStringValue(dR["AUXINFO"], string.Empty);

                //Add database service to store client config
                string key = DBKEY + idx;
                this.clientConfig.DatabaseServices.Add(key, dVO);

                //Increment index
                ++idx;
            }

            return(idx > 0);
        }
示例#2
0
        public DatabaseServiceVO GetCouchDBService()
        {
            if (!this.Initialized)
            {
                return(null);
            }
            for (var i = 0; i < this.clientConfig.DatabaseServices.Count; ++i)
            {
                DatabaseServiceVO curDS = this.GetDBService(i);
                if (curDS == null)
                {
                    continue;
                }
                if (curDS.ServiceType.Equals(COUCHDBKEY, StringComparison.OrdinalIgnoreCase))
                {
                    return(curDS);
                }
            }

            throw new ApplicationException(ERRMSGSERV + COUCHDBKEY);
        }
示例#3
0
        public bool SetLDAPService(
            ref DatabaseServiceVO ldap,
            string loginDN,
            string searchDN,
            string userIdKey,
            string userPwd,
            string pwdPolicy,
            bool encryptServerPort)
        {
            if (!this.Initialized)
            {
                return(false);
            }

            if (ldap == null || string.IsNullOrEmpty(ldap.ServiceType) ||
                !ldap.ServiceType.Equals(LDAPKEY))
            {
                return(false);
            }

            if (this.clientConfig.DatabaseServices == null)
            {
                this.clientConfig.DatabaseServices = new Dictionary <string, DatabaseServiceVO>(3);
            }

            //If an LDAP service exists, fetch it first
            var exists    = false;
            var curLdapVo = this.clientConfig.DatabaseServices.Values.First(
                x => x.ServiceType.Equals(LDAPKEY));

            if (curLdapVo != null)
            {
                exists = true;
            }

            if (!exists)
            {
                curLdapVo      = ldap;
                curLdapVo.Name = this.EncryptValue(ldap.Name);
                if (encryptServerPort)
                {
                    curLdapVo.Port   = this.EncryptValue(ldap.Port);
                    curLdapVo.Server = this.EncryptValue(ldap.Server);
                }
                else
                {
                    curLdapVo.Port   = ldap.Port;
                    curLdapVo.Server = ldap.Server;
                }
            }
            else
            {
                curLdapVo.Name = (!string.IsNullOrEmpty(ldap.Name)) ? ldap.Name : curLdapVo.Name;
                if (encryptServerPort)
                {
                    curLdapVo.Port   = this.EncryptValue(ldap.Port);
                    curLdapVo.Server = this.EncryptValue(ldap.Server);
                }
                else
                {
                    curLdapVo.Port   = ldap.Port;
                    curLdapVo.Server = ldap.Server;
                }
            }

            //Construct aux info string
            var auxInfoStr =
                ComputeUnEncryptedAuxInfo(
                    loginDN, searchDN, userIdKey, userPwd, pwdPolicy);

            //Encrypt the aux info string and set it
            curLdapVo.AuxInfo = this.EncryptValue(auxInfoStr);

            //Set the ref field again
            ldap = curLdapVo;

            //If the entry did not exist previously, add it to the list
            if (!exists)
            {
                var servCnt = this.clientConfig.DatabaseServices.Count;
                this.clientConfig.DatabaseServices.Add(DBKEY + servCnt, ldap);
            }

            return(true);
        }