예제 #1
0
        /// <summary>
        /// 获取链接字符串
        /// </summary>
        /// <param name="guid"></param>
        /// <param name="key"></param>
        /// <returns></returns>
        public string ReadDBConnect()
        {
            string connStr = DesCryptFactory.DecryptString(ConnectDic[Guid], Key);

            this.ProviderType = DoGetProviderType(connStr);
            return(DoGetConnect(connStr));
        }
예제 #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="userid"></param>
        /// <param name="password"></param>
        /// <returns>返回1表示登录成功,2表示已登录,3表示密码错误,0表示登录失败</returns>
        public LoginInfo Login(string userid, string password)
        {
            //SQLBuilder builder = new SQLBuilder("Account");
            //string sql = builder.GetSQL("Account", new string[] { "A.UserId,A.Password,A.PasswordKey,A.loginIP,A.LoginDT,A.IsLogin" }, builder.Where("A.UserId={0}", userid));
            //DataRow row = this.DataAccess.GetDataRow(sql);
            LibTableObj account = this.DSContext["Account"];
            LoginInfo   lginfo  = new LoginInfo();

            lginfo.HasAdminRole = false;
            this.DataAccess.FillTableObj(account.Where(account.Columns.UserId + "={0}", userid));
            dynamic row = account.FindRow(0);

            if (row != null)
            {
                if (row.IsLogin)
                {
                    //this.AddMessage(string.Format(this.GetMessageDesc("msg000000001")), LibMessageType.Prompt);
                    //return 2;
                    lginfo.loginResult = 2;
                }
                string pwd    = row.Password;
                string pwdkey = row.PasswordKey;
                lginfo.UserNm = row.UserNm;
                pwdkey        = DesCryptFactory.AESDecrypt(pwdkey, SysConstManage._pwdkeyEncrykey);
                pwd           = DesCryptFactory.DecryptString(pwd, pwdkey);
                //this.AddMessage("test", LibMessageType.Error);
                if (pwd == password)
                {
                    //sql = builder.GetUpdateSQL("Account", builder.UpdateField("IsLogin={0},loginIP={1}", true, "192.168.1.5"), builder.Where("UserId={0}", userid));
                    //int result = this.DataAccess.ExecuteNonQuery(sql);
                    //return result > 0 ? 1 : 0;
                    lginfo.loginResult = 1;
                    LibTableObj roletbobj = this.GetAuthority(userid);
                    if (roletbobj != null)
                    {
                        var exist = roletbobj.Rows.FirstOrDefault(i => i.JoleId == "001");
                        if (exist != null)
                        {
                            lginfo.HasAdminRole = true;
                        }
                    }
                }
                else
                {
                    lginfo.loginResult = 3;
                }
            }
            else
            {
                lginfo.loginResult = -1;
            }
            return(lginfo);
            //return 1;
        }
예제 #3
0
        /// <summary>
        /// 获取系统账套链接字符串
        /// </summary>
        /// <returns></returns>
        public string ReadSysDBConnect()
        {
            Dictionary <string, string> dic = ReadDBInfoToDic();

            if (!string.IsNullOrEmpty(SysDBConnStr))
            {
                string[] strarray = SysDBConnStr.Split(SysConstManage.ColonChar);
                if (strarray.Length > 1)
                {
                    string connetStr = DesCryptFactory.DecryptString(strarray[1], strarray[0]);
                    this.ProviderType = DoGetProviderType(connetStr);
                    return(DoGetConnect(connetStr));
                }
            }
            return(string.Empty);
        }
예제 #4
0
 //string _pwdkeyEncrykey = "bwyAccount";
 protected override void BeforeUpdate()
 {
     base.BeforeUpdate();
     #region 产生密码秘钥并加密密码
     //string pwd = this.LibTables[0].Tables[0].DataTable .Rows[0]["Password"].ToString();
     //string pwdkey = DesCryptFactory.GenerateKey();
     //pwd = DesCryptFactory.EncryptString(pwd, pwdkey);
     //this.LibTables[0].Tables[0].DataTable .Rows[0]["Password"] = pwd;
     //this.LibTables[0].Tables[0].DataTable .Rows[0]["PasswordKey"] = DesCryptFactory.AESEncrypt(pwdkey, _pwdkeyEncrykey);
     var    firstrow = this.LibTables[0].Tables[0].FindRow(0);
     string pwd      = firstrow.Password;
     string pwdkey   = DesCryptFactory.GenerateKey();
     pwd = DesCryptFactory.EncryptString(pwd, pwdkey);
     firstrow.Password    = pwd;
     firstrow.PasswordKey = DesCryptFactory.AESEncrypt(pwdkey, SysConstManage._pwdkeyEncrykey);
     #endregion
 }
예제 #5
0
        /// <summary>
        /// 保存配置
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button2_Click(object sender, EventArgs e)
        {
            DBInfoHelp help   = new DBInfoHelp();
            DBInfo     dbinfo = new DBInfo();

            dbinfo.Key        = DesCryptFactory.GenerateKey();
            dbinfo.DataBase   = this.txtDataBase.Text.Trim();
            dbinfo.ServerAddr = this.txtServerAddr.Text.Trim();
            dbinfo.UserId     = this.txtUserId.Text.Trim();
            dbinfo.Password   = this.txtpwd.Text.Trim();
            dbinfo.Guid       = dbinfo.DataBase == ResFactory.ResManager.LogDBNm ? dbinfo.DataBase : Guid.NewGuid().ToString();
            switch (this.combConType.SelectedText.Trim())
            {
            case "TCP":
                dbinfo.ConnectType = LibConnectType.TCP;
                break;

            case "HTTP":
                dbinfo.ConnectType = LibConnectType.HTTP;
                break;
            }
            switch (this.combDataBaseType.Text.Trim())
            {
            case "SQL SERVER":
                dbinfo.ProviderType = LibProviderType.SqlServer;
                break;

            case "ORACLE":
                dbinfo.ProviderType = LibProviderType.Oracle;
                break;
            }

            help.BinaryWriteDBInfo(dbinfo);
            //MessageBox.Show(help.ExceptionMessage);
            ILibDBHelp dbhelp = new DBHelpFactory().GetDBHelp(dbinfo.ProviderType);

            if (dbhelp.SaveAccout(dbinfo))
            {
                MessageBox.Show("保存成功");
            }
            else
            {
                MessageBox.Show("保存出错");
            }
        }
예제 #6
0
 /// <summary>
 /// 加密链接字符串并保存到文件
 /// </summary>
 /// <param name="info"></param>
 /// <param name="key"></param>
 private void EncryptWriteInfo(string info, string guid, string key, bool isSys)
 {
     try
     {
         StringBuilder builder = new StringBuilder();
         FileOperation file    = new FileOperation();
         file.FilePath = _filePath;
         if (!File.Exists(_filePath))
         {
             FileStream fi = File.Create(_filePath);
             fi.Close();
         }
         string content = file.ReadFile();
         //builder.Append(content);
         builder.Append(SysConstManage.DBInfoArraySeparator);
         builder.Append(string.Format("{0}{1}", isSys ? key : guid, SysConstManage.ColonChar));
         builder.Append(DesCryptFactory.EncryptString(info, key));
         builder.Append(SysConstManage.DBInfoArraySeparator2);
         if (isSys)
         {
             builder.Append(content);
             file.WritText(builder.ToString());
         }
         else
         {
             file.WritText(string.Format("{0}{1}", content, builder.ToString()));
         }
         ExceptionMessage = file.ExceptionMessage;
     }
     catch (Exception ex)
     {
         ExceptionMessage = ex.Message;
     }
     finally
     {
     }
 }