public RESTJson Login([FromBody] LoginInfo logininfo) { string loginname = logininfo.loginName; string loginpwd = logininfo.loginPwd; //创建默认返回值对象 RESTJson json = new RESTJson() { ErrCode = -1, ErrMsg = "defeate", Data = null }; if (!ValidateUser(loginname, loginpwd)) { json.ErrMsg = "username or password do not null"; return(json); } //从Cache缓存中读取数据 var chacheTokenInfo = HttpRuntime.Cache.Get(loginname); if (chacheTokenInfo == null) { UtilityHelper.CreateToken(loginname); //创建Token并写入Cache缓存中 } json.ErrCode = 1; json.ErrMsg = "sucess"; return(json); }
public RESTJson CreateClientKeyPath() { RESTJson result = new RESTJson(); result.ErrMsg = ClientEncryptionHelper.GenerateKeys(); result.ErrCode = 1; return(result); }
public string ServerInspectionSign() { RESTJson result = new RESTJson(); //获取非业务参数请求头信息 string timestamp = HttpContext.Current.Request.Headers["timestamp"]; string sign = HttpContext.Current.Request.Headers["sign"]; //判断timestamp是否超时 if (UtilityHelper.IsTimestampValidity(timestamp)) { return(UtilityEnum.InspectionResult.Timeout.ToString()); } //使用接收方密钥解密报文 string message = ServerEncryptionHelper.PriKeyDecrypted(sign); //验签 return(ServerEncryptionHelper.CheckSign(message)); }
public RESTJson GetClientEncryptionKey([FromBody] LoginInfo loginInfo) { RESTJson result = new RESTJson(); //非业务参数(如:时间戳等) HeadersInfo headersInfo = new HeadersInfo(); //根据非业务参数和业务参数拼接字符串并按照首字母排序 Dictionary <string, object> dic = new Dictionary <string, object>(); dic = SignHelper <HeadersInfo> .ObjConvertDic(dic, headersInfo); dic = SignHelper <LoginInfo> .ObjConvertDic(dic, loginInfo); string str = SignHelper <string> .DicSortToString(dic); //使用请求方的私钥进行加密生成签名 string sign = ClientEncryptionHelper.privateToSign(str); //判空 if (string.IsNullOrEmpty(sign)) { result.ErrMsg = "生成报文失败"; return(result); } //使用接收方的公钥进行加密生成加密报文 string message = ServerEncryptionHelper.PubKeyEncryption(str += '_' + sign); if (!string.IsNullOrEmpty(message)) { result.ErrCode = 1; result.ErrMsg = "生成报文成功"; result.Data = message; } return(result); }