ASP.NET生成驗證碼的方法

 更新時間:2020-06-14 00:02:05   作者:佚名   我要評論(0)

本文實例為大家分享了ASP.NET生成驗證碼的具體代碼,供大家參考,具體內容如下
首先,添加一個一般處理程序

注釋很詳細了,有不懂的歡迎評論


using System;
usin

本文實例為大家分享了ASP.NET生成驗證碼的具體代碼,供大家參考,具體內容如下

首先,添加一個一般處理程序

注釋很詳細了,有不懂的歡迎評論

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Web;
using System.Web.SessionState;

namespace Project_Practice
{
 /// <summary>
 /// Handler1 的摘要說明
 /// </summary>
 public class Handler1 : IHttpHandler,IRequiresSessionState
 {

 public void ProcessRequest(HttpContext context)
 {
  //選取的顏色
  Color[] colors = { Color.White };
  //通過Bitmap構造Image
  Image img = new Bitmap(100, 60);
  //Graphics繪畫Image
  Graphics graphics = Graphics.FromImage(img);

  Random random = new Random(DateTime.Now.Millisecond);
  //驗證碼的四位數
  int charNum1 = random.Next('0', '9' + 1);
  int charNum2 = random.Next('0', '9' + 1);
  int charNum3 = random.Next('0', '9' + 1);
  int charNum4 = random.Next('0', '9' + 1);
  //把生成的隨機數變成字符串,通過char進行轉換
  string validCode = string.Format($"{(char)charNum1}{(char)charNum2}{(char)charNum3}{(char)charNum4}");
  //放進Session進行存儲,記得繼承接口,否則瘋狂報空指針
  context.Session["verification_Code"] = validCode;
  //字體的大小和類別
  Font font = new Font("宋體", 24);
  //隨機的顏色
  Brush brush1 = new SolidBrush(colors[random.Next(0, colors.Length - 1)]);
  //DrawString的四個參數,第一個是要寫的字符,第二個是字體,第三個是顏色,第四個是坐標x,y
  graphics.DrawString(((char)charNum1).ToString(), font, brush1, 7, -3);
  Brush brush2 = new SolidBrush(colors[random.Next(0, colors.Length - 1)]);
  graphics.DrawString(((char)charNum2).ToString(), font, brush2, 26, -9);
  Brush brush3 = new SolidBrush(colors[random.Next(0, colors.Length - 1)]);
  graphics.DrawString(((char)charNum3).ToString(), font, brush3, 50, 0);
  Brush brush4 = new SolidBrush(colors[random.Next(0, colors.Length - 1)]);
  graphics.DrawString(((char)charNum4).ToString(), font, brush4, 70, -7);
  //保存,格式
  context.Response.ContentType = "image/jpeg";
  img.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
  //釋放資源
  graphics.Dispose();
  img.Dispose();
 }

 public bool IsReusable
 {
  get
  {
  return false;
  }
 }
 }
}

一個web窗體

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="verification_Code.aspx.cs" Inherits="Project_Practice.verification_Code" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 <title></title>
</head>
<body>
 <form id="form1" runat="server">
 <div>
  <asp:Image ID="Image1" runat="server" ImageUrl="~/Handler1.ashx" />
 </div>
 </form>
</body>
</html>

效果圖

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:

  • asp.net 驗證碼生成和刷新及驗證
  • ASP.net 驗證碼實現代碼(C#)
  • asp.net(C#) 生成隨機驗證碼的代碼
  • Asp.net(C#)實現驗證碼功能代碼
  • asp.net 簡單驗證碼驗證實現代碼
  • ASP.NET MVC驗證碼功能實現代碼
  • ASP.NET 實現驗證碼以及刷新驗證碼的小例子
  • ASP.NET中的無刷新驗證碼的開發(完整代碼)
  • asp.net 圖片驗證碼的HtmlHelper
  • asp.net ajax實現無刷新驗證碼

相關文章

  • ASP.NET生成驗證碼的方法

    ASP.NET生成驗證碼的方法

    本文實例為大家分享了ASP.NET生成驗證碼的具體代碼,供大家參考,具體內容如下 首先,添加一個一般處理程序 注釋很詳細了,有不懂的歡迎評論 using System; usin
    2020-06-14
  • 1個文件如何輕松搞定Asp.net core 3.1動態頁面轉靜態頁面

    1個文件如何輕松搞定Asp.net core 3.1動態頁面轉靜態頁面

    前言 最近一個Asp.net core項目需要靜態化頁面,百度查找了一下,沒有發現合適的。原因如下 配置麻煩。 類庫引用了第三方類,修改起來麻煩。 有只支持MVC,不
    2020-06-14
  • ASP.NET Core3.x API版本控制的實現

    ASP.NET Core3.x API版本控制的實現

    前言 一般來說需要更改我們API的時候才考慮版本控制,但是我覺得我們不應該等到那時候來實現它,我們應該有一個版本策略從我們應用程序開發時就開始制定好我們的
    2020-06-14
  • Asp.net Core中實現自定義身份認證的示例代碼

    Asp.net Core中實現自定義身份認證的示例代碼

    Asp.Net Core中雖然集成了許多常用的身份認證,但很多時候,我們還是需要實現自己的身份認證接口,本文這里就簡單的介紹下如何實現自定義身份認證接口。 首先寫一個
    2020-06-14
  • ASP.NET Core WebAPI實現本地化(單資源文件)

    ASP.NET Core WebAPI實現本地化(單資源文件)

    在Startup ConfigureServices 注冊本地化所需要的服務AddLocalization和 Configure<RequestLocalizationOptions> public void ConfigureServices(IServiceCollec
    2020-06-14
  • 關于.NET Attribute在數據校驗中的應用教程

    關于.NET Attribute在數據校驗中的應用教程

    前言 Attribute(特性)的概念不在此贅述了,相信有點.NET基礎的開發人員都明白,用過Attribute的人也不在少數,畢竟很多框架都提供自定義的屬性,類似于Newtonsoft
    2020-06-14
  • ASP.NET開源導入導出庫Magicodes.IE完成Csv導入導出的方法

    ASP.NET開源導入導出庫Magicodes.IE完成Csv導入導出的方法

    說明 本章主要說明如何使用Magicodes.IE.Csv進行Csv導入導出. 關于Magicodes.IE 導入導出通用庫,通過導入導出DTO模型來控制導入和導出,支持Excel、Word、Pd
    2020-06-14
  • .net core 3.1在iis上發布的踩坑記錄

    .net core 3.1在iis上發布的踩坑記錄

    前言 寫這篇文章的目的是希望像我一樣喜歡.net 的人在發布 core到 iis上時少走點彎路 網上找了些資料,其實實際操作比較簡單,就是有幾個坑很惡心 踩坑記錄 首先是你
    2020-06-14
  • .NET IoC模式依賴反轉(DIP)、控制反轉(Ioc)、依賴注入(DI)

    .NET IoC模式依賴反轉(DIP)、控制反轉(Ioc)、依賴注入(DI)

    依賴倒置原則(DIP) 依賴倒置(Dependency Inversion Principle,縮寫DIP)是面向對象六大基本原則之一。他是指一種特定的的解耦形式,使得高層次的模塊不依賴低層次的
    2020-06-14
  • asp.net mvc core管道及攔截器的理解

    asp.net mvc core管道及攔截器的理解

    今天來看一下asp.net core的執行管道。先看下官方說明: 從上圖可以拋光,asp.net core的執行順序是,當收到一個請求后,request請求會先經過已注冊的中間件,然后
    2020-06-14

最新評論

买宝宝用品赚钱吗 12bet娱乐城百家乐 申捷策略 黑龙江省p62开奖结果 重庆时时开奖现场直播 上海11选5推荐任三 辽宁11选5遗漏top 股票分析视频 天津快乐10分玩法介绍 家庭收入黄金分配图 开封股票配资 上海十一选五开奖号 股票指数600点是什么意思啊 山西大乐透什么时候开售 网络投资理财平台可靠吗 2017年大小波色单双句 河南快三豹子规律