/// <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); } }
/// <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 })); }
/// <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); }
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); }
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(); } }
public int LoginEmp(string empName, string empPwd) { empPwd = EncryHelper.GetMd5Str(empPwd); return(EmployeeServices.LoginEmp(empName, empPwd)); }
public int AddEmployee(Employee employee) { employee.EmployeePwd = EncryHelper.GetMd5Str(employee.EmployeePwd); return(EmployeeServices.AddEmployee(employee)); }
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); }
/// <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); } } }