/// <summary> /// 验证滑条是否有效 /// </summary> /// <param name="data"></param> /// <returns></returns> public async Task <bool> VerificationAsync(ValidationModel <int[]> data) { // 审查会话安全性 await VerificationActionAsync(data.ActionData); return(await _sliderVerificationProvider.VerificationAsync(data)); }
public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next) { var _verifyPictureAppService = context.HttpContext.RequestServices.GetService(typeof(ISliderAppService)) as ISliderAppService; var data = context.HttpContext.Request.Headers.FirstOrDefault(c => c.Key == "Data"); var actionData = new SliderActionModel(context.HttpContext.Connection.RemoteIpAddress.ToString()); if (data.Key.IsNullOrWhiteSpace()) { var token = context.HttpContext.Request.Headers.FirstOrDefault(c => c.Key == "Token"); if (token.Key.IsNullOrWhiteSpace()) { var valTokendata = new ValidationModel <string>(token.Value, actionData); if (!await _verifyPictureAppService.VerificationTokenAsync(valTokendata)) { throw new UserFriendlyException("The verification code is wrong!"); } } throw new UserFriendlyException("The verification code is not valid!"); } var valdata = new ValidationModel <int[]>(Array.ConvertAll(data.Value.ToString().Split(','), int.Parse), actionData); if (!await _verifyPictureAppService.VerificationAsync(valdata)) { throw new UserFriendlyException("The verification code is wrong!"); } await next(); }
/// <summary> /// 获取滑条验证令牌 /// </summary> /// <param name="data"></param> /// <returns></returns> public async Task <string> GetVerificationTokenAsync(ValidationModel <string> data) { // 审查会话安全性 await VerificationActionAsync(data.ActionData); // 缓存会话 var id = GuidGenerator.Create().ToString(); await _cacheToken.SetAsync(id, new SliderActionTokenCacheModel(data.ActionData.Ip)); return(id); }
/// <summary> /// 验证滑条是否有效 /// </summary> /// <param name="data"></param> /// <returns></returns> public async Task <bool> VerificationTokenAsync(ValidationModel <string> data) { // 审查会话安全性 await VerificationActionAsync(data.ActionData); var result = await _cacheToken.GetAsync(data.Data); if (result != null) { // 验证IP同源 return(result.Ip == data.ActionData.Ip); } return(false); }
/// <summary> /// 验证滑条是否有效 /// </summary> /// <param name="data"></param> /// <returns></returns> public async Task <bool> VerificationAsync(ValidationModel <int[]> data) { // 判断数字滑动速率是否超出正常值 if (!await VerificationAverage(data.Data)) { return(false); } // 判断数字速率是否由慢变快 if (!VerificationSpeed(data.Data)) { return(false); } // 根 return(true); }
public async Task <bool> VerificationAsync(ValidationModel <int[]> input) { return(await _silderManager.VerificationAsync(input)); }
public async Task <bool> VerificationTokenAsync(ValidationModel <string> input) { return(await _silderManager.VerificationTokenAsync(input)); }