public IActionResult Show(string data) { if (string.IsNullOrWhiteSpace(data)) { return(BadRequest()); } var decryptedModel = _captchaProtectionProvider.Decrypt(data); if (decryptedModel == null) { return(BadRequest()); } var model = _serializationProvider.Deserialize <CaptchaImageParams>(decryptedModel); if (model == null) { return(BadRequest()); } var decryptedText = _captchaProtectionProvider.Decrypt(model.Text); if (decryptedText == null) { return(BadRequest()); } var image = model.UseNoise ? _captchaImageProvider.DrawCaptcha(decryptedText, model.ForeColor, model.FontSize, model.FontName) : _captchaImageProvider.DrawCaptcha(decryptedText, model.ForeColor, model.BackColor, model.FontSize, model.FontName); return(new FileContentResult(image, "image/png")); }
public IActionResult Show(string text, string rndDate, string foreColor = "#1B0172", string backColor = "", float fontSize = 12, string fontName = "Tahoma") { if (string.IsNullOrWhiteSpace(text)) { return(BadRequest()); } if (isImageHotlinking()) { return(BadRequest()); } var decryptedText = _captchaProtectionProvider.Decrypt(text); if (decryptedText == null) { return(BadRequest()); } byte[] image; try { image = _captchaImageProvider.DrawCaptcha(decryptedText, foreColor, backColor, fontSize, fontName); } catch (Exception ex) { _logger.LogCritical(1001, ex, "DrawCaptcha error."); return(BadRequest(ex.Message)); } return(new FileContentResult(_captchaImageProvider.DrawCaptcha(decryptedText, foreColor, backColor, fontSize, fontName), "image/png")); }
public IActionResult Show(string data) { if (string.IsNullOrWhiteSpace(data)) { return(BadRequest()); } var decryptedModel = _captchaProtectionProvider.Decrypt(data); if (decryptedModel == null) { return(BadRequest()); } var model = _serializationProvider.Deserialize <CaptchaImageParams>(decryptedModel); if (model == null) { return(BadRequest()); } var decryptedText = _captchaProtectionProvider.Decrypt(model.Text); if (decryptedText == null) { return(BadRequest()); } byte[] image; try { if (model.UseNoise) { image = _captchaImageProvider.DrawCaptcha(decryptedText, model.ForeColor, model.FontSize, model.FontName); } else { image = _captchaImageProvider.DrawCaptcha(decryptedText, model.ForeColor, model.BackColor, model.FontSize, model.FontName); } } catch (Exception ex) { _logger.LogCritical(1001, ex, "DrawCaptcha error."); return(BadRequest(ex.Message)); } return(new FileContentResult(image, "image/png")); }
public IActionResult Show(string data) { try { if (string.IsNullOrWhiteSpace(data)) { return(BadRequest()); } var decryptedModel = _captchaProtectionProvider.Decrypt(data); if (decryptedModel == null) { return(BadRequest()); } var model = _serializationProvider.Deserialize <CaptchaImageParams>(decryptedModel); if (model == null) { return(BadRequest()); } var decryptedText = _captchaProtectionProvider.Decrypt(model.Text); if (decryptedText == null) { return(BadRequest()); } var image = model.UseNoise ? _captchaImageProvider.DrawCaptcha(decryptedText, model.ForeColor, model.FontSize, model.FontName) : _captchaImageProvider.DrawCaptcha(decryptedText, model.ForeColor, model.BackColor, model.FontSize, model.FontName); return(new FileContentResult(image, "image/png")); } #pragma warning disable CA1031 // Do not catch general exception types catch (Exception ex) #pragma warning restore CA1031 // Do not catch general exception types { return(BadRequest(ex)); } }
public IActionResult Show(string data) { try { if (string.IsNullOrWhiteSpace(data)) { return(BadRequest("The data is null or empty.")); } var decryptedModel = _captchaProtectionProvider.Decrypt(data); if (decryptedModel == null) { return(BadRequest("Couldn't decrypt the data.")); } var model = _serializationProvider.Deserialize <CaptchaImageParams>(decryptedModel); if (model == null) { return(BadRequest("Couldn't deserialize the model.")); } var decryptedText = _captchaProtectionProvider.Decrypt(model.Text); if (decryptedText == null) { return(BadRequest("Couldn't decrypt the text.")); } var image = model.UseNoise ? _captchaImageProvider.DrawCaptcha(decryptedText, model.ForeColor, model.FontSize, model.FontName) : _captchaImageProvider.DrawCaptcha(decryptedText, model.ForeColor, model.BackColor, model.FontSize, model.FontName); return(new FileContentResult(image, "image/png")); } catch (Exception ex) { _logger.LogError(ex, "Failed to show the captcha image."); return(BadRequest(ex.ToString())); } }
private Task DrawImageAsync(HttpContext httpContext, string text, string rndDate, string foreColor = "#1B0172", string backColor = "", float fontSize = 12, string fontName = "Tahoma") { if (string.IsNullOrWhiteSpace(text)) { httpContext.Response.StatusCode = 400; return(Task.CompletedTask); } var decryptedText = _captchaProtectionProvider.Decrypt(text); if (decryptedText == null) { httpContext.Response.StatusCode = 400; return(Task.CompletedTask); } byte[] image; try { image = _captchaImageProvider.DrawCaptcha(decryptedText, foreColor, backColor, fontSize, fontName); } catch (Exception ex) { _logger.LogCritical(1001, ex, "DrawCaptcha error."); httpContext.Response.StatusCode = 400; return(Task.CompletedTask); } FileContentResult result = new FileContentResult(_captchaImageProvider.DrawCaptcha(decryptedText, foreColor, backColor, fontSize, fontName), "image/png"); HttpResponse response = httpContext.Response; response.ContentType = result.ContentType; int length = result.FileContents.Length; response.ContentLength = length; response.StatusCode = 200; return(response.Body.WriteAsync(result.FileContents, 0, length)); }
public byte[] GeneratorCaptcha(string name, int captchaLength, bool hasNumber, bool haslower, bool hasUpper, int imageWidth, int imageHeight, float fontSize) { var text = _captchaCodeGenerator.OutputText(haslower, hasUpper, hasNumber, captchaLength); if (_captchaOptions.Enable) { _captchaStorageProvider.Add(_httpContextAccessor.HttpContext, name, text); } byte[] image = null; try { image = _captchaImageProvider.DrawCaptcha(text, fontSize, imageWidth, imageHeight); } catch (Exception ex) { throw ex; } return(image); }
public IActionResult Show(string text, string rndDate, string foreColor = "#1B0172", string backColor = "", float fontSize = 12, string fontName = "Tahoma") { if (string.IsNullOrWhiteSpace(text)) { return(BadRequest()); } if (isImageHotlinking()) { return(BadRequest()); } var decryptedText = _captchaProtectionProvider.Decrypt(text); if (decryptedText == null) { return(BadRequest()); } return(new FileContentResult( _captchaImageProvider.DrawCaptcha(decryptedText, foreColor, backColor, fontSize, fontName), "image/png")); }