src/ZKEACMS/Captcha/ImageCaptchaService.cs
(完整代码) 1KB/* http://www.zkea.net/
* Copyright (c) ZKEASOFT. All rights reserved.
* http://www.zkea.net/licenses */
using Easy;
using Easy.Extend;
using Easy.Cache;
using Microsoft.AspNetCore.Http;
using System.Collections.Generic;
using System.Collections;
using System;
namespace ZKEACMS.Captcha
{
public class ImageCaptchaService : IImageCaptchaService
{
private readonly IEnumerable<ICaptchaCodeStorageProvider> _captchaCodeStorageProviders;
private readonly IImageGenerator _imageGenerator;
public ImageCaptchaService(IImageGenerator imageGenerator, IEnumerable<ICaptchaCodeStorageProvider> captchaCodeStorageProviders)
{
_imageGenerator = imageGenerator;
_captchaCodeStorageProviders = captchaCodeStorageProviders;
}
public byte[] GenerateCode(int num)
{
string code = new RandomText().Generate(num);
foreach (var item in _captchaCodeStorageProviders)
{
item.SaveCode(code);
}
return _imageGenerator.Generate(code);
}
public bool ValidateCode(string code)
{
if (code.IsNullOrWhiteSpace()) return false;
return code.Equals(GetCode(), StringComparison.OrdinalIgnoreCase);
}
private string GetCode()
{
foreach (var item in _captchaCodeStorageProviders)
{
string code = item.GetCode();
if (code.IsNotNullAndWhiteSpace()) return code;
}
return string.Empty;
}
}
}
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。