Example #1
0
        /// <summary>
        /// 获取token
        /// </summary>
        /// <returns></returns>
        public static string GetTokenInfo()
        {
            string redisKey = ValuationAnchor.Models.ResourceRedisKeyEnum.ValuationAnchorApiToken.GetDesc();
            string token    = string.Empty;

            try
            {
                if (RedisHelper.IsExists(redisKey))
                {
                    return(RedisHelper.GetObj <TokenValue>(redisKey).Token);
                }
                //post参数
                string signKey = "0987654321";                                           //推送参数signKey
                string appid   = "201609021530300235";                                   //推送参数appid应用ID
                //请求参数
                string signTime = DateTime.Now.AddMinutes(3).ToString("yyyyMMddHHmmss"); //推送参数签名时间
                Random rdom     = new Random();
                string r        = rdom.Next(99999, 1000000).ToString();                  //推送参数随机码
                //md5 加密
                string signCode = EncryHelper.MD5(appid + signTime + r + signKey);       //推送参数签名


                token = signCode.ToString();

                RedisHelper.SetObj(redisKey, new TokenValue {
                    Token = token
                }, TimeSpan.FromMinutes(30));
                return(token);
            }
            catch (Exception exception)
            {
                //FileLogHelper.Write($"调取可搜接口获得token异常:{exception.Message}");
                throw new Exception("可搜接口,token获取出错!({0})", exception);
            }
        }
Example #2
0
        /// <summary>
        /// 获取Token信息
        /// </summary>
        /// <param name="inToken">Token入参</param>
        /// <returns></returns>
        public async Task <JsonResult> Index(InToken inToken)
        {
            var dic = new Dictionary <string, string>();

            dic.Add("201609021530300235", "0987654321");
            var result   = new OutResult();
            var dateTime = DateTime.Now;

            if (
                !DateTime.TryParseExact(inToken.SignTime, "yyyyMMddHHmmss",
                                        System.Globalization.CultureInfo.InvariantCulture,
                                        System.Globalization.DateTimeStyles.None, out dateTime))
            {
                result.code = (int)ResultCode.ParameterError;
                result.msg  = "签名时间不正确";
                return(Json(result));
            }

            var nowTime = DateTime.Now;

            if (dateTime > nowTime.AddMinutes(5) || dateTime < nowTime.AddMinutes(-5))
            {
                result.code = (int)ResultCode.SignTimeError;
                result.msg  = "签名时间与服务器时间相差5分钟";
                return(Json(result));
            }

            var sign = EncryHelper.MD5(inToken.AppId + inToken.SignTime + inToken.Random + dic[inToken.AppId]);

            if (sign != inToken.SignCode)
            {
                result.code = (int)ResultCode.SignError;
                result.msg  = "签名错误";
                return(Json(result));
            }

            //生成token
            var token = Guid.NewGuid().ToString().Replace("-", "");

            _logger.LogDebug("token生成:" + token + " appid:" + inToken.AppId);
            //将token存入缓存
            RedisHelper.SetToken(token, inToken.AppId, TimeSpan.FromMinutes(300));

            _logger.LogDebug("token存入Redis:" + token + " appid:" + inToken.AppId);

            return
                (Json(new OutResult
            {
                data = token
            }));
        }
Example #3
0
        /// <summary>
        /// 从游标获取目标实体
        /// </summary>
        /// <param name="dr"></param>
        /// <returns></returns>
        private T ParseDataReader(IDataReader dr, ref List <string> cloumnsList)
        {
            T t = new T();

            if (cloumnsList == null)
            {
                cloumnsList = new List <string>();
                for (int i = 0; i < dr.FieldCount; i++)
                {
                    cloumnsList.Add(dr.GetName(i));
                }
            }

            cloumnsList.ForEach(
                c =>
            {
                object val = dr[c];

                if (val == DBNull.Value)
                {
                    return;
                }

                var r = rpAttrList.Find(p => p.Column.Equals(c, StringComparison.OrdinalIgnoreCase));
                if (r == null)
                {
                    return;
                }

                if (r.IsEncry)
                {
                    if (!string.IsNullOrEmpty(val.ToString()))
                    {
                        val = new EncryHelper().Decrypto(val.ToString());
                    }
                }

                if (r.Property.PropertyType.IsEnum /*&& r.Property.PropertyType.IsEnumDefined(val)*/)
                {
                    t.SetValue(r.PropertyEx, Enum.Parse(r.Property.PropertyType, val.ToString()));
                }
                else
                {
                    t.SetValue(r.PropertyEx, val);
                }
            }

                );

            return(t);
        }
Example #4
0
        private T ParseDataRow(DataRow row)
        {
            T t = new T();

            //foreach (DataColumn col in row.Table.Columns)
            for (var i = 0; i < row.Table.Columns.Count; i++)
            {
                var    col = row.Table.Columns[i];
                object val = row[col];

                if (val == DBNull.Value)
                {
                    continue;
                }

                var r = rpAttrList.Find(p => p.Column.Equals(col.ColumnName, StringComparison.OrdinalIgnoreCase));
                if (r == null)
                {
                    continue;
                }
                if (r.IsEncry)
                {
                    if (!string.IsNullOrEmpty(val.ToString()))
                    {
                        val = new EncryHelper().Decrypto(val.ToString());
                    }
                }

                if (r.Property.PropertyType.IsEnum /*&& r.Property.PropertyType.IsEnumDefined(val)*/)
                {
                    t.SetValue(r.PropertyEx, Enum.Parse(r.Property.PropertyType, val.ToString()));
                }
                else
                {
                    t.SetValue(r.PropertyEx, val);
                }
            }

            return(t);
        }
Example #5
0
        public void ProcessRequest(HttpContext context)
        {
            VerifyImageHttpHandle v = new VerifyImageHttpHandle();

            v.Length = this.length;
            v.Chaos = this.chaos;
            v.BackgroundColor = this.backgroundColor;
            v.CodeSerial = this.codeSerial;
            v.Colors = this.colors;
            v.Fonts = this.fonts;
            v.Padding = this.padding;
            string code = v.CreateVerifyCode();
            HttpResponse Response = context.Response;
            Response.Cache.SetExpires(DateTime.Now.AddHours(-1));
            Response.CacheControl = "no-cache";
            //  将生成的图片发回客户端
            using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
            {
                Bitmap image = this.CreateImageCode(code);
                image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                code = new EncryHelper().DoEncrypt(code.ToUpper(), "VCode", Encoding.UTF8);
                Response.Cookies.Add(new HttpCookie("VerifyCode", code));
                Response.ClearContent(); //需要输出图象信息 要修改HTTP头
                Response.ContentType = "image/jpeg";
                Response.BinaryWrite(ms.GetBuffer());
                image.Dispose();
                ms.Close();
                ms.Dispose();
                Response.End();
            }
        }
Example #6
0
 public int LoginEmp(string empName, string empPwd)
 {
     empPwd = EncryHelper.GetMd5Str(empPwd);
     return(EmployeeServices.LoginEmp(empName, empPwd));
 }
Example #7
0
 public int AddEmployee(Employee employee)
 {
     employee.EmployeePwd = EncryHelper.GetMd5Str(employee.EmployeePwd);
     return(EmployeeServices.AddEmployee(employee));
 }
Example #8
0
        private T ParseDataRow(DataRow row, ref Action <T, object>[] funarray)
        {
            T t = new T();

            //foreach (DataColumn col in row.Table.Columns)
            for (var i = 0; i < row.Table.Columns.Count; i++)
            {
                var    col = row.Table.Columns[i];
                object val = row[col];

                if (val == DBNull.Value)
                {
                    continue;
                }

                if (funarray != null && funarray[i] != null)
                {
                    funarray[i](t, val);
                    continue;
                }

                if (funarray == null)
                {
                    funarray = new Action <T, object> [row.Table.Columns.Count];
                }

                var r = rpAttrList.Find(p => p.Column.Equals(col.ColumnName, StringComparison.OrdinalIgnoreCase));
                if (r == null)
                {
                    funarray[i] = new Action <T, object>((instance, o) => { });
                    continue;
                }

                if (r.Property.PropertyType.IsEnum /*&& r.Property.PropertyType.IsEnumDefined(val)*/)
                {
                    var fun = new Action <T, object>((instance, o) =>
                    {
                        if (r.IsEncry)
                        {
                            if (!string.IsNullOrEmpty(o.ToString()))
                            {
                                o = new EncryHelper().Decrypto(o.ToString());
                            }
                        }
                        instance.SetValue(r.PropertyEx, Enum.Parse(r.Property.PropertyType, o.ToString()));
                    });

                    funarray[i] = fun;
                }
                else
                {
                    var fun = new Action <T, object>((instance, o) =>
                    {
                        if (r.IsEncry)
                        {
                            if (!string.IsNullOrEmpty(o.ToString()))
                            {
                                o = new EncryHelper().Decrypto(o.ToString());
                            }
                        }
                        instance.SetValue(r.PropertyEx, o);
                    });

                    funarray[i] = fun;
                }

                funarray[i](t, val);
            }

            return(t);
        }
Example #9
0
        /// <summary>
        /// 为sql语句准备参数
        /// </summary>
        /// <param name="db"></param>
        /// <param name="cmd"></param>
        /// <param name="sql"></param>
        /// <param name="parameters"></param>
        private void PrepareSQLParameters(Database db, DbCommand cmd, string sql, params DbParameter[] parameters)
        {
            if (parameters != null && parameters.Length > 0)
            {
                foreach (var param in parameters)
                {
                    if (param.Direction == ParameterDirection.Input)
                    {
                        db.AddInParameter(cmd, param.ParameterName, param.DbType, param.Value);
                    }
                    else if (param.Direction == ParameterDirection.Output)
                    {
                        db.AddOutParameter(cmd, param.ParameterName, param.DbType, param.Size);
                    }
                    else
                    {
                        throw new Exception("parameters is valid.");
                    }
                }
            }

            if (Instance == null)
            {
                return;
            }

            //
            var           matchs    = sqlParamRegex.Matches(sql);
            List <string> sqlParams = new List <string>();

            foreach (Match m in matchs)
            {
                if (m.Success)
                {
                    sqlParams.Add(m.Groups[1].Value);
                }
            }
            sqlParams = sqlParams.Distinct().ToList();

            if (matchs.Count > 0)
            {
                var rpAttrKeyList = rpAttrList.Where(p => p.isKey).ToList();
                foreach (var x in sqlParams)
                {
                    var r = rpAttrList.Find(p => p.Column.Equals(x.Substring(1), StringComparison.OrdinalIgnoreCase));
                    //草,oledb要参数对齐

                    object val = r.Property.GetValue(Instance, null);

                    if (r.isKey)
                    {
                        if (r.IsEncry)
                        {
                            throw new Exception("主键不能设为加密!");
                        }
                    }
                    else
                    {
                        if (r.IsEncry && val != null)
                        {
                            if (!(val is string))
                            {
                                throw new Exception("只有字符串才能加密。");
                            }

                            if (!string.IsNullOrEmpty(val.ToString()))
                            {
                                val = new EncryHelper().Encrypto(val.ToString());
                            }
                        }
                    }

                    var dbtype = GetDbType(r.Property.PropertyType);
                    if (dbtype == DbType.DateTime)
                    {
                        var tval = (DateTime)val;
                        if (tval == default(DateTime))
                        {
                            val = DBNull.Value;
                        }
                    }
                    db.AddInParameter(cmd, x, dbtype, val);
                }
            }
        }