上一节,介绍了滑动验证码的基本情况,也创建了一个.NET 6的工程。本节内容是创建一些基础类。
目录
本节创建的类全部在工程的Model目录下:
CaptchaData.cs
CaptchaData.cs:验证码的数据类实体- namespace SlideCaptcha.Model
- {
- public class CaptchaData
- {
- /// <summary>
- /// id
- /// </summary>
- public string Id { get; set; }
- /// <summary>
- /// 背景图(含凹槽)
- /// </summary>
- public string BackgroundImage { get; set; }
- /// <summary>
- /// 滑动块图
- /// </summary>
- public string SliderImage { get; set; }
- public CaptchaData(string id, string backgroundImage, string sliderImage)
- {
- Id = id;
- BackgroundImage = backgroundImage;
- SliderImage = sliderImage;
- }
- }
- }
复制代码 id表示验证码的id值,用于校验验证码,BackgroundImage 是验证码图片base64,包含了凹槽。凹槽模板在templates目录下。SliderImage 是滑块图片。模板在templates下。
CaptchaValidateData.cs
CaptchaValidateData.cs:验证码验证数据实体- namespace SlideCaptcha.Model
- {
- public class CaptchaValidateData
- {
- /// <summary>
- /// 滑动比例
- /// </summary>
- public float Percent { get; set; }
- /// <summary>
- /// 容错值(校验时用,缺口位置与实际滑动位置匹配容错范围)
- /// </summary>
- public float Tolerant { get; set; }
- public CaptchaValidateData(float percent, float tolerant)
- {
- Percent = percent;
- Tolerant = tolerant;
- }
- }
- }
复制代码 ImageCaptchaInfo.cs
ImageCaptchaInfo.cs:证码图片信息实体- namespace SlideCaptcha.Model
- {
- public class ImageCaptchaInfo
- {
- /// <summary>
- /// 背景图宽
- /// </summary>
- public int BackgroundImageWidth { get; set; }
- /// <summary>
- /// 背景图高
- /// </summary>
- public int BackgroundImageHeight { get; set; }
- /// <summary>
- /// 背景图
- /// </summary>
- public string BackgroundImageBase64 { get; set; }
- /// <summary>
- /// 滑动块图宽
- /// </summary>
- public int SliderImageWidth { get; set; }
- /// <summary>
- /// 滑动块图高
- /// </summary>
- public int SliderImageHeight { get; set; }
- /// <summary>
- /// 滑动块图
- /// </summary>
- public string SliderImageBase64 { get; set; }
- }
- }
复制代码 验证码实体类的基类,滑动验证码、旋转验证码、点选验证码、拼接验证码都基于这个类。
Resource.cs
Resource.cs :资源实体类- namespace SlideCaptcha.Model
- {
- public class Resource
- {
- public Resource(){}
- /// <summary>
- /// 资源数据
- /// </summary>
- public string Data { get; set; }
- /// <summary>
- /// 资源类型
- /// </summary>
- public string Type { get; set; }
-
- /// <summary>
- /// 构造函数
- /// </summary>
- /// <param name="type">资源类型</param>
- /// <param name="data">资源数据</param>
- public Resource(string type,string data)
- {
- Type = type;
- Data = data;
- }
- }
- }
复制代码 资源数据,Data为要生成验证码图片路径。Type为类型,目前仅为本地文件,后期将扩展URL模式。
SliderImageCaptchaInfo.cs
SliderImageCaptchaInfo.cs:滑动验证码实体类
[code]using SlideCaptcha.Exceptions;namespace SlideCaptcha.Model{ public class SliderImageCaptchaInfo : ImageCaptchaInfo { /// /// 凹槽x坐标 /// public int X { get; set; } /// /// 凹槽y坐标 /// public int Y { get; set; } /// /// 凹槽位置百分比 /// public float Percent { get { if (BackgroundImageWidth |