Exemple #1
0
        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);
        }
Exemple #2
0
        public RESTJson CreateClientKeyPath()
        {
            RESTJson result = new RESTJson();

            result.ErrMsg  = ClientEncryptionHelper.GenerateKeys();
            result.ErrCode = 1;

            return(result);
        }
Exemple #3
0
        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));
        }
Exemple #4
0
        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);
        }