public async Task <OperationResult <CheckResult> > Check(Guid firstElementId, Guid secondElementId) { var checkRequest = new CheckRequest { FirstElement = firstElementId.ToString(), SecondElement = secondElementId.ToString(), UserId = _userId }; InternalCheckResult intermediateResult; try { var url = Constants.ApiUrl + "/api/Elements/merge"; intermediateResult = await HttpClient.PostWithRetry <InternalCheckResult>(url, checkRequest); } catch { return(OperationResult <CheckResult> .Failure()); } if (intermediateResult.isSuccess) { return(OperationResult <CheckResult> .Success( CheckResult.Success( intermediateResult.mergeResultElement.id, intermediateResult.mergeResultElement.imageName, intermediateResult.mergeResultElement.name, intermediateResult.mergeResultElement.score, intermediateResult.mergeResultElement.description))); } return(OperationResult <CheckResult> .Success(CheckResult.Failure())); }
private CheckResult CheckRequest(string userId, string passWord, string signature, string timestamp, string nonce, Guid appid) { if (string.IsNullOrEmpty(userId) || string.IsNullOrEmpty(passWord)) { return(CheckResult.Fail("用户名或密码为空")); } if (string.IsNullOrEmpty(signature)) { return(CheckResult.Fail("请求签名为空")); } if (string.IsNullOrEmpty(timestamp)) { return(CheckResult.Fail("时间戳为空")); } if (string.IsNullOrEmpty(nonce)) { return(CheckResult.Fail("随机数为空")); } if (appid == Guid.Empty) { return(CheckResult.Fail("应用接入ID非法")); } return(CheckResult.Success()); }
private CheckResult <string> CheckedFileParamter(HttpPostedFile postFile) { if (postFile == null && postFile.ContentLength == 0) { return(CheckResult <string> .Fail("没有文件")); } //文件名 string _fileName = uploadFileSetting.IsUseOldFileName ? postFile.FileName : DateTime.Now.FormatDate(12) + Path.GetExtension(postFile.FileName); //验证格式 CheckResult <string> _checkFileTypeResult = CheckingType(postFile.FileName); if (!_checkFileTypeResult.State) { return(_checkFileTypeResult); } //验证大小 CheckResult <string> _checkFileSizeResult = CheckSize(postFile); if (!_checkFileSizeResult.State) { return(_checkFileSizeResult); } return(CheckResult <string> .Success(_fileName)); }
/// <summary> /// 检查请求签名合法性 /// </summary> /// <param name="signature">加密签名字符串</param> /// <param name="timestamp">时间戳</param> /// <param name="nonce">随机数</param> /// <param name="appConfig">应用接入配置信息</param> /// <returns>CheckResult</returns> public CheckResult CheckRequestSignature(string signature, string timestamp, string nonce, AppConfig appConfig) { ValidateOperator.Begin() .NotNullOrEmpty(signature, "加密签名字符串") .NotNullOrEmpty(timestamp, "时间戳") .NotNullOrEmpty(nonce, "随机数") .NotNull(appConfig, "AppConfig"); var appSecret = appConfig.AppSecret; var signatureExpired = appConfig.SignatureExpiredMinutes; string[] data = { appSecret, timestamp, nonce }; Array.Sort(data); var signatureText = string.Join("", data); signatureText = Md5Encryptor.Encrypt(signatureText); if (!signature.CompareIgnoreCase(signatureText) && CheckHelper.IsNumber(timestamp)) { return(CheckResult.Success()); } var timestampMillis = UnixEpochHelper.DateTimeFromUnixTimestampMillis(timestamp.ToDoubleOrDefault()); var minutes = DateTime.UtcNow.Subtract(timestampMillis).TotalMinutes; return(minutes > signatureExpired?CheckResult.Fail("签名时间戳失效") : CheckResult.Success()); }
/// <summary> /// 检查图片参数 /// </summary> /// <param name="originalImagePath">原始图片路径</param> /// <param name="thumbnailPath">存储的缩略图</param> /// <param name="isaddwatermark">是否是添加水印图片</param> /// <param name="waterImagePath">水印图片的路径</param> /// <returns></returns> private static CheckResult CheckedThumbnailsParamter(string originalImagePath, string thumbnailPath, bool isaddwatermark, string waterImagePath) { CheckResult _checkedOriginalImage = CheckedImageParamter(originalImagePath, true); if (!_checkedOriginalImage.State) { return(_checkedOriginalImage); } CheckResult _checkedThumbnailPath = CheckedImageParamter(thumbnailPath, false); if (!_checkedThumbnailPath.State) { return(_checkedThumbnailPath); } if (isaddwatermark) { CheckResult _checkedWaterImage = CheckedImageParamter(waterImagePath, true); if (!_checkedWaterImage.State) { return(_checkedWaterImage); } } return(CheckResult.Success()); }
private CheckResult CheckRequest(string token, Guid appid) { if (string.IsNullOrEmpty(token)) { return(CheckResult.Fail("用户令牌为空")); } return(Guid.Empty == appid?CheckResult.Fail("应用ID非法") : CheckResult.Success()); }
/// <summary> /// 根据appId获取请求通道配置信息 /// </summary> /// <param name="appid">appId</param> /// <returns>AppConfig</returns> public CheckResult <AppConfig> Get(Guid appid) { var appConfig = _configContext.Get <AppConfig>(appid.ToString()); return(appConfig != null ? CheckResult <AppConfig> .Success(appConfig) : CheckResult <AppConfig> .Fail($"{appid}配置参数缺失.")); }
protected override CheckResult <IdentityUser> GetIdentityUser(string userId, string passWord) { if (userId == "2c96ff542072420bc8d33bdd73bb9488" && passWord == "0000") { return(CheckResult <IdentityUser> .Success(new IdentityUser { UserId = userId.ToGuidOrDefault(Guid.Empty), Password = passWord })); } return(CheckResult <IdentityUser> .Fail("用户名称或密码错误。")); }
/// <summary> /// 检查文件大小 /// </summary> /// <param name="postFile">HttpPostedFile</param> private CheckResult <string> CheckSize(HttpPostedFile postFile) { if (postFile.ContentLength / 1024.0 / 1024.0 > uploadFileSetting.MaxSizeM) { return(CheckResult <string> .Fail(string.Format("对不起上传文件过大,不能超过{0}M!", uploadFileSetting.MaxSizeM))); } return(CheckResult <string> .Success()); }
private CheckResult CheckedPostFile(HttpPostedFile postedFile) { if (postedFile == null && postedFile.ContentLength == 0) { return(CheckResult.Fail(GetCodeMessage(4))); } return(CheckResult.Success()); }
/// <summary> /// 判断请求图片的缓存是否存在 /// </summary> /// <param name="context">HttpContext</param> /// <returns>是否存在</returns> private CheckResult CheckedRequestImageCache(HttpContext context) { if (!string.IsNullOrEmpty(context.Request.Headers["If-Modified-Since"])) { context.Response.StatusCode = 304; context.Response.StatusDescription = "Not Modified"; return(CheckResult.Success()); } return(CheckResult.Fail(null)); }
private CheckResult CheckedValidateTokenParamter(string token, Guid appid) { if (string.IsNullOrEmpty(token)) { return(CheckResult.Fail("用户令牌为空")); } if (Guid.Empty == appid) { return(CheckResult.Fail("应用ID非法")); } return(CheckResult.Success()); }
private CheckResult CheckedUploadImageParamter(string fileEx, double fileSize) { if (!FileHelper.CheckValidExt(SetAllowFormat, fileEx)) { return(CheckResult.Fail(GetCodeMessage(2))); } if (fileSize > SetAllowSize) { return(CheckResult.Fail(GetCodeMessage(3))); } return(CheckResult.Success()); }
private static CheckResult CheckedFileDownloadParamter(string fileName, string filePhysicsPath) { if (string.IsNullOrEmpty(fileName)) { return(CheckResult.Fail("下载文件名称不能为空。")); } if (!CheckHelper.IsFilePath(filePhysicsPath) || !File.Exists(filePhysicsPath)) { return(CheckResult.Fail("下载文件路径不合法或者文件不实际存在。")); } return(CheckResult.Success()); }
/// <summary> /// 检查图片参数,1.是否是合法路径,2.是否物理存在,3.是否是图片后缀 /// </summary> /// <param name="imagePath">图片路径</param> /// <param name="checkedFileExist">是否检查物理存在</param> /// <returns>检验是否合法</returns> private static CheckResult CheckedImageParamter(string imagePath, bool checkedFileExist) { if (!CheckHelper.IsFilePath(imagePath)) { return(CheckResult.Fail(string.Format("{0}是非法路径。", imagePath))); } if (checkedFileExist && !File.Exists(imagePath)) { return(CheckResult.Fail(string.Format("{0}并非实际存在。", imagePath))); } string _imageExt = FileHelper.GetFileEx(imagePath); if (!FileHelper.CheckValidExt(ImageHelper.AllowExt, _imageExt)) { return(CheckResult.Fail(string.Format("{0}并非图片格式,目前支持的图片格式:{1}。", imagePath, ImageHelper.AllowExt))); } return(CheckResult.Success()); }
/// <summary> /// 验证文件类型 /// </summary> /// <param name="fileName">文件名称.</param> private CheckResult <string> CheckingType(string fileName) { if (uploadFileSetting.FileType != "*") { // 获取允许允许上传类型列表 string[] _typeList = uploadFileSetting.FileType.Split(','); // 获取上传文件类型(小写) string _type = Path.GetExtension(fileName).ToLowerInvariant(); // 验证类型 if (_typeList.Contains(_type) == false) { return(CheckResult <string> .Fail("文件类型非法")); } } return(CheckResult <string> .Success()); }
/// <summary> /// 检查上传文件是否合法 /// </summary> /// <param name="fileBuffer">文件流</param> /// <param name="fileExt">文件后缀</param> /// <returns>是否合法</returns> private CheckResult CheckedUploadFile(byte[] fileBuffer, string fileExt) { if (fileBuffer.Length == 0) { return(CheckResult.Fail("无数据提交")); } if (fileBuffer.Length > this.MaxFilesize) { return(CheckResult.Fail("文件大小超过" + this.MaxFilesize + "字节")); } if (!AllowExt.Contains(fileExt)) { return(CheckResult.Fail("上传文件扩展名必需为:" + string.Join(",", AllowExt))); } return(CheckResult.Success()); }
/// <summary> /// 验证WebApi签名 /// </summary> /// <param name="signature">签名</param> /// <param name="timestamp">时间戳</param> /// <param name="nonce">随机数</param> /// <param name="appSecret">签名加密键</param> /// <param name="signatureExpiredMinutes">签名过期分钟</param> /// <returns>CheckResult</returns> internal static CheckResult Validate(string signature, string timestamp, string nonce, string appSecret, int signatureExpiredMinutes) { string[] _arrayParamter = { appSecret, timestamp, nonce }; Array.Sort(_arrayParamter); string _signatureString = string.Join("", _arrayParamter); _signatureString = MD5Encryptor.Encrypt(_signatureString); if (signature.CompareIgnoreCase(signature) && CheckHelper.IsNumber(timestamp)) { DateTime _timestampMillis = UnixEpochHelper.DateTimeFromUnixTimestampMillis(timestamp.ToDoubleOrDefault(0f)); double _minutes = DateTime.UtcNow.Subtract(_timestampMillis).TotalMinutes; if (_minutes > signatureExpiredMinutes) { return(CheckResult.Fail("签名时间戳失效")); } } return(CheckResult.Success()); }