当前位置: 首页 > news >正文

购物网站建设价格陕西建设厅继续教育网站

购物网站建设价格,陕西建设厅继续教育网站,建设品牌网站公司,设计素材网站p开头的开发环境#xff1a;VS2019#xff0c;.NET Core 3.1#xff0c;ASP.NET Core API 1、建立一个验证码控制器 新建两个方法Create和Check#xff0c;Create用于创建验证码#xff0c;Check用于验证它是否有效。 声明一个静态类变量存放列表#xff0c;列表中存放包含令…开发环境VS2019.NET Core 3.1ASP.NET Core API 1、建立一个验证码控制器 新建两个方法Create和CheckCreate用于创建验证码Check用于验证它是否有效。 声明一个静态类变量存放列表列表中存放包含令牌和验证码的对象。 private static ListVCodeModel _list new ListVCodeModel();/// summary/// 返回一个图形验证码和令牌./// /summary/// returns/returns/// remarks这一步需要生成一个数字并将数字放入图片中并返回一个令牌下次验证的时候需要核对令牌和数字是否对应这些东西保存到类变量中./remarks[HttpGet]public string Create(){try{VCodeModel model new VCodeModel();model.id Guid.NewGuid().ToString(); // 生成令牌var vcode Utils.GetVCode(); // 生成验证码model.code vcode;_list.Add(model); // 记录到缓存中// 返回对象VCodeController_Create_Receive result new VCodeController_Create_Receive();result.code 0;result.data new VCodeController_Create_Receive.Data();result.data.id model.id;var image Utils.DrawImage(vcode);var base64 Utils.BitmapToBase64Str(image);result.data.img base64;var json JsonConvert.SerializeObject(result);return json;}catch (Exception ex){_logger.LogError(exception: ex, message: ex.Message);ReceiveObject result new ReceiveObject();result.code 999999;result.msg 系统异常;var json JsonConvert.SerializeObject(result);return json;}}/// summary/// 检查验证码是否有效/// /summary/// param nameid令牌./param/// param namecode验证码./param/// returns/returns[HttpGet]public string Check(string id, string code){try{var index _list.FindIndex(m {if (m.id.Equals(id) m.code.Equals(code)){return true;}return false;});ReceiveObject result new ReceiveObject();if (index 0){_list.RemoveAt(index);result.code 0;result.msg 验证成功;var json JsonConvert.SerializeObject(result);return json;}else{result.code 1;result.msg 验证失败;var json JsonConvert.SerializeObject(result);return json;}}catch(Exception ex){_logger.LogError(exception: ex, message: ex.Message);ReceiveObject result new ReceiveObject();result.code 999999;result.msg 系统异常;var json JsonConvert.SerializeObject(result);return json;}} 2、建立一个验证码模型 验证码模型类包括令牌和验证码属性。 再创建一个类存放Create方法返回的对象包括令牌验证码图片。 /// summary/// VCodeController用到的类变量./// /summarypublic class VCodeModel{/// summary/// 令牌./// /summarypublic string id { get; set; }/// summary///验证码./// /summarypublic string code { get; set; }}/// summary/// VCodeController控制器中Create方法的返回对象./// /summarypublic class VCodeController_Create_Receive : ReceiveObject{public Data data { get; set; }public class Data{/// summary/// 令牌./// /summarypublic string id { get; set; }/// summary/// Base64的验证码图片./// /summarypublic string img { get; set; }}} 3、建立一个验证码生成器 创建用于生成4位随机数的方法。 创建将随机数绘制成图片的方法。 static readonly char[] list new char[10] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, };/// summary/// 获取随机验证码./// /summary/// returns/returnspublic static string GetVCode(){Random random new Random();StringBuilder builder new StringBuilder();for (int i 0; i 4; i){var index random.Next(0, list.Length);builder.Append(list[index]);}return builder.ToString();}/// summary/// 绘制验证码的图片./// /summary/// param namecode/param/// returns/returnspublic static Bitmap DrawImage(string code){Color[] list_color {Color.FromArgb(240, 230, 140), // 黄褐色亮Color.FromArgb(138, 54, 15), // 黄褐色暗Color.FromArgb(51, 161, 201), // 蓝色亮Color.FromArgb(25, 25, 112), // 蓝色暗Color.FromArgb(192, 192, 192), // 灰白亮Color.FromArgb(128, 128, 105), // 灰白暗};Random random new Random();// 创建画板Bitmap bitmap new Bitmap(150, 50);// 创建画笔Graphics grp Graphics.FromImage(bitmap);grp.Clear(Color.White); // 设置背景色为白色// 绘制噪点for (int i 0; i random.Next(60, 80); i){int x random.Next(bitmap.Width);int y random.Next(bitmap.Height);grp.DrawLine(new Pen(Color.LightGray, 1), x, y, x 1, y);}// 绘制随机的线条grp.DrawLine(new Pen(list_color[random.Next(list_color.Length)], random.Next(3)),new Point(random.Next(bitmap.Width / 2), random.Next(bitmap.Height / 2)),new Point(bitmap.Width / 2 random.Next(bitmap.Width / 2), bitmap.Height / 2 random.Next(bitmap.Height / 2)));// 绘制验证码for (int i 0; i code.Length; i){var item code[i];grp.DrawString(item.ToString(),new Font(FontFamily.GenericSansSerif, 25, FontStyle.Bold),new SolidBrush(list_color[random.Next(list_color.Length)]),x: (150 / 4) * i,y: random.Next(5));}// 在验证码上绘制噪点for (int i 0; i random.Next(30, 50); i){int x random.Next(bitmap.Width);int y random.Next(bitmap.Height);grp.DrawLine(new Pen(list_color[random.Next(list_color.Length)], 1), x, y, x 1, y);}// 绘制随机的线条grp.DrawLine(new Pen(list_color[random.Next(list_color.Length)], random.Next(3)),new Point(random.Next(bitmap.Width / 2), random.Next(bitmap.Height / 2)),new Point(bitmap.Width / 2 random.Next(bitmap.Width / 2), bitmap.Height / 2 random.Next(bitmap.Height / 2)));return bitmap;}/// summary/// 将图片对象转成Base64的字符串./// /summary/// param namebitmap/param/// returns/returnspublic static string BitmapToBase64Str(Bitmap bitmap){using (MemoryStream memoryStream new MemoryStream()){bitmap.Save(memoryStream, ImageFormat.Jpeg);byte[] bytes memoryStream.ToArray();return Convert.ToBase64String(memoryStream.ToArray());}} 运行效果 参考C# 绘制验证码图片_c#生成验证码图片_耕耘虫的博客-CSDN博客
http://www.hkea.cn/news/14487612/

相关文章:

  • 网站优缺点做毕业设计的参考文献网站
  • 网站无法导入照片郑州网站建设选智巢
  • 成都电商网站门窗东莞网站建设技术支持
  • 个人网站做排名温州做网站建设
  • da面板做两个网站电商网站建设那家好
  • 做网站页面设计报价dw做旅游网站模板下载
  • 福田网站建设龙岗网站建设罗湖网站建设福田网站建设百度搜索引擎录入网站
  • 在中国建设银行的网站上可以转账吗网站服务器制作
  • 手机网站设计背景图片教程网网站源码php
  • 网站建设总结报告专门做外国的网站吗
  • 做传感器的网站郴州市北湖建设局网站
  • 厦门专业做网站的公司网站不同颜色
  • 顺德网站制作案例咨询做设计.不抠图网站
  • 巩义网站建设价格wooyun wordpress
  • 网站死链处理濮阳新闻联播
  • 上海网站建设目的网站菜单导航制作教程
  • 宠物网站建设策划方案phpcms 外贸网站模板
  • 网站建设公司的那些坑怎样用阿里云建设网站
  • 视频网站dedecms给个网站能用的2022
  • 外贸建站用什么平台好编写程序的步骤
  • 网站做资讯需要获取许可证吗网页页面怎么设计
  • 网站案例分析昆山专业做网站
  • 西安专业做网站的做电子商务网站建设工资多少钱
  • 肇东网站建设wordpress 文章存档
  • 门户网站建设文案优惠云服务器
  • 网站制作工作室专业公司网站打不开用什么浏览器
  • html5移动端网站开发教程wordpress 页面分级
  • 怎么看到网站开发时间企业官网设计现状
  • 济南网站建设内容霸州市网站建设
  • 学网站开发推荐书沈阳网络教育电视平台