.NET 6 实现滑动验证码(二)、基本数据

打印 上一主题 下一主题

主题 875|帖子 875|积分 2625

上一节,介绍了滑动验证码的基本情况,也创建了一个.NET 6的工程。本节内容是创建一些基础类。

目录

本节创建的类全部在工程的Model目录下:
CaptchaData.cs

CaptchaData.cs:验证码的数据类实体
  1. namespace SlideCaptcha.Model
  2. {
  3.     public class CaptchaData
  4.     {
  5.         /// <summary>
  6.         /// id
  7.         /// </summary>
  8.         public string Id { get; set; }
  9.         /// <summary>
  10.         /// 背景图(含凹槽)
  11.         /// </summary>
  12.         public string BackgroundImage { get; set; }
  13.         /// <summary>
  14.         /// 滑动块图
  15.         /// </summary>
  16.         public string SliderImage { get; set; }
  17.         public CaptchaData(string id, string backgroundImage, string sliderImage)
  18.         {
  19.             Id = id;
  20.             BackgroundImage = backgroundImage;
  21.             SliderImage = sliderImage;
  22.         }
  23.     }
  24. }
复制代码
id表示验证码的id值,用于校验验证码,BackgroundImage 是验证码图片base64,包含了凹槽。凹槽模板在templates目录下。SliderImage 是滑块图片。模板在templates下。
CaptchaValidateData.cs

CaptchaValidateData.cs:验证码验证数据实体
  1. namespace SlideCaptcha.Model
  2. {
  3.     public class CaptchaValidateData
  4.     {
  5.         /// <summary>
  6.         /// 滑动比例
  7.         /// </summary>
  8.         public float Percent { get; set; }
  9.         /// <summary>
  10.         /// 容错值(校验时用,缺口位置与实际滑动位置匹配容错范围)
  11.         /// </summary>
  12.         public float Tolerant { get; set; }
  13.         public CaptchaValidateData(float percent, float tolerant)
  14.         {
  15.             Percent = percent;
  16.             Tolerant = tolerant;
  17.         }
  18.     }
  19. }
复制代码
ImageCaptchaInfo.cs

ImageCaptchaInfo.cs:证码图片信息实体
  1. namespace SlideCaptcha.Model
  2. {
  3.     public class ImageCaptchaInfo
  4.     {
  5.         /// <summary>
  6.         /// 背景图宽
  7.         /// </summary>
  8.         public int BackgroundImageWidth { get; set; }
  9.         /// <summary>
  10.         /// 背景图高
  11.         /// </summary>
  12.         public int BackgroundImageHeight { get; set; }
  13.         /// <summary>
  14.         /// 背景图
  15.         /// </summary>
  16.         public string BackgroundImageBase64 { get; set; }
  17.         /// <summary>
  18.         /// 滑动块图宽
  19.         /// </summary>
  20.         public int SliderImageWidth { get; set; }
  21.         /// <summary>
  22.         /// 滑动块图高
  23.         /// </summary>
  24.         public int SliderImageHeight { get; set; }
  25.         /// <summary>
  26.         /// 滑动块图
  27.         /// </summary>
  28.         public string SliderImageBase64 { get; set; }
  29.     }
  30. }
复制代码
验证码实体类的基类,滑动验证码、旋转验证码、点选验证码、拼接验证码都基于这个类。
Resource.cs

Resource.cs :资源实体类
  1. namespace SlideCaptcha.Model
  2. {
  3.     public class Resource
  4.     {
  5.         public Resource(){}
  6.         /// <summary>
  7.         /// 资源数据
  8.         /// </summary>
  9.         public string Data { get; set; }
  10.         /// <summary>
  11.         /// 资源类型
  12.         /// </summary>
  13.         public string Type { get; set; }
  14.         
  15.         /// <summary>
  16.         /// 构造函数
  17.         /// </summary>
  18.         /// <param name="type">资源类型</param>
  19.         /// <param name="data">资源数据</param>
  20.         public Resource(string type,string data)
  21.         {
  22.             Type = type;
  23.             Data = data;
  24.         }
  25.     }
  26. }
复制代码
资源数据,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
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

欢乐狗

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表