今天学习了常规字母加数字的网页验证码流程.
- 在需要验证码的地方插入img标签<img alt="验证码" src="validata.aspx"/>
- 创建validata.aspx页面。
- 切换到代码文件,验证码是什么样子的呢?在一张图片上显示随机码。只要掌握如何产生随机码和图片就好说。
- 在Page_Load()方法获得一个随机数,当然在网上看到一个比较偷懒的做法,利用.net平台提供的函数产生,system.Guid.NewGuid()方法就能获得一个随机的不重复的随机码,当然还得确定随机码的长度,所以还得调用substring()方法。最后还得把随机码保存到session中,代码:Session("Rcode")=System.Guid.NewGuid().ToString().Substring(0,4);取一个长度为4的随机码保存在session中。
- 把随机码保存在图像中。
- 导入对应命名空间。
Using system.drawing;
Using system.drawing.imaging;
- 创建图像对象
Bitmap bitmap=new Bitmap(60,25);//创建一个宽60,高25的图像
- 创建画布对象
Graphics g=Graphics.FromImage(bitmap);
- 清除画布并指定画布背景
g.Clear(ColorTranslator.FromHtml("#ffffff"));// ColorTranslator把html颜色值转换成颜色。
- 创建字体对象
Font font=new Font("微软雅黑",12);//12号字体
- 创建画刷对象
SolidBrush solidBrush=new SolidBrush(Color.black);
- 把随机码画在画布上
G.DrawString(Session["Rcode"].toString(),font,soldBrush,2,2);//详见msdn
- 把图像以jpeg格式保存在流中
Bitmap.Save(Response.OutputStream,ImageFormat.Jpeg);
- 设置响应的mini类型
Response.ContentType="image/Jpeg";
- 关闭流
g.dispose();
bitmap.dispose();
Response.End();
- 接下来就是判断验证码和随机码是否一致。自己想想了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?