ホームページ バックエンド開発 C#.Net チュートリアル Ashxを使用して検証コード機能を実装するasp.netの詳細な説明

Ashxを使用して検証コード機能を実装するasp.netの詳細な説明

Aug 15, 2017 pm 01:54 PM
asp.net 確認する

この記事では、ashx を使用してグラフィック検証コードを生成する asp.net の方法を主に紹介し、asp.net のグラフィック検証コードを生成するための手順、実装方法、および関連する注意事項をサンプルの形式で分析します。この記事

この例では、asp.net が ashx を使用してグラフィック検証コードを生成する方法を説明します。参考までに共有します。詳細は次のとおりです。

確認コードの利点については説明する必要はありません。皆さんもご存知でしょう。インターネットで、誰かが aspx ページに直接検証コードを書き込んだのを見ました。これは、この方法で検証コードを要求することは、ページを要求することと同じであることを意味します。これは非常に非科学的です。以下に示すように


<form id="form1" runat="server">
  <p>
    <asp:Image ID="Image1" runat="server" ImageUrl="Default.aspx" />
    <br />
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
  </p>
</form>
ログイン後にコピー

このコードを見ると、コードを書いた人は叩かれてしかるべきだと思います。このようなコードを書くのは本当に憂鬱です。それを確認し、切り替えるためのスクリプトを作成しないでください。

ここでそのような機能を実現する方法を紹介します

1. グラフィックの検証コードを生成するためにashxを書きます


using System;
using System.Collections;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;
using System.Web.SessionState;
using System.Drawing;
namespace usechecknum.ashx
{
  /// <summary>
  /// $codebehindclassname$ 的摘要说明
  /// </summary>
  [WebService(Namespace = "http://tempuri.org/")]
  [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
  public class doCreateNum : IHttpHandler,IRequiresSessionState
  {
    public void ProcessRequest(HttpContext context)
    {
      context.Response.ContentType = "text/html";
      string checkCode = GetValidation(5); // 产生5位随机验证码字符
      context.Session["Code"] = checkCode; //将字符串保存到Session中,以便需要时进行验证
      System.Drawing.Bitmap image = new System.Drawing.Bitmap(70, 22);
      Graphics g = Graphics.FromImage(image);
      try
      {
        //生成随机生成器
        Random random = new Random();
        //清空图片背景色
        g.Clear(Color.White);
        // 画图片的背景噪音线
        int i;
        for (i = 0; i < 25; i++)
        {
          int x1 = random.Next(image.Width);
          int x2 = random.Next(image.Width);
          int y1 = random.Next(image.Height);
          int y2 = random.Next(image.Height);
          g.DrawLine(new Pen(Color.Silver), x1, y1, x2, y2);
        }
        Font font = new System.Drawing.Font("Arial", 12, (System.Drawing.FontStyle.Bold));
        System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.DarkRed, 1.2F, true);
        g.DrawString(checkCode, font, brush, 2, 2);
        //画图片的前景噪音点
        g.DrawRectangle(new Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1);
        System.IO.MemoryStream ms = new System.IO.MemoryStream();
        image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
        context.Response.ClearContent();
        context.Response.ContentType = "image/Gif";
        context.Response.BinaryWrite(ms.ToArray());
      }
      finally
      {
        g.Dispose();
        image.Dispose();
      }
    }
    public string GetValidation(int num)
    {
      string str = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; //"或者写汉字也行"
      string validatecode = "";
      Random rd = new Random();
      for (int i = 0; i < num; i++)
      {
        validatecode += str.Substring(rd.Next(0, str.Length), 1);
      }
      return validatecode;
    }
    public bool IsReusable
    {
      get
      {
        return false;
      }
    }
  }
}
ログイン後にコピー

2. グラフィックを生成するので、ページに検証コードを表示します。 タグ内に、マウスのクリックで認証コードを切り替える簡単なスクリプトを記述するだけです


<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="usechecknum._Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
  <title>验证码的使用</title>
</head>
<script language="javascript" type="text/javascript">
  function changeCode() {
    var imgNode = document.getElementById("vimg");
    imgNode.src = "ashx/doCreateNum.ashx?t=" + (new Date()).valueOf(); // 这里加个时间的参数是为了防止浏览器缓存的问题
  }
  </script>
<body>
  <form id="form1" runat="server">
   请输入验证码:<input type="text" name="checknum"/><img src="ashx/doCreateNum.ashx" id="vimg" onclick="changeCode()" />
  </form>
</body>
</html>
ログイン後にコピー

長い間話してきたので、次は、生成された確認コードは次のようになります

以上がAshxを使用して検証コード機能を実装するasp.netの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PDFの署名を検証する方法 PDFの署名を検証する方法 Feb 18, 2024 pm 05:33 PM

私たちは通常、政府やその他の機関から PDF ファイルを受け取りますが、中にはデジタル署名が付いているものもあります。署名を検証すると、SignatureValid メッセージと緑色のチェック マークが表示されます。署名が検証されない場合、有効性は不明です。署名の検証は重要です。PDF で署名を検証する方法を見てみましょう。 PDF 形式の署名を検証する方法 PDF 形式で署名を検証すると、署名の信頼性が高まり、文書が受け入れられる可能性が高くなります。次の方法で PDF ドキュメントの署名を検証できます。 Adobe Reader で PDF を開きます。 署名を右クリックし、「署名プロパティの表示」を選択します。 「署名者証明書の表示」ボタンをクリックします。 「信頼」タブから信頼できる証明書リストに署名を追加します。 「署名の検証」をクリックして検証を完了します。

WeChatの友人による認証を使用してブロックを解除する詳細な方法 WeChatの友人による認証を使用してブロックを解除する詳細な方法 Mar 25, 2024 pm 01:26 PM

1. WeChatを開いた後、検索アイコンをクリックし、WeChatチームと入力し、下のサービスをクリックして入力します。 2. 入力後、左下隅にあるセルフサービス ツール オプションをクリックします。 3. をクリックした後、上のオプションで、補助検証のブロック解除/再審査請求のオプションをクリックします。

PHP 8 の新機能: 検証と署名の追加 PHP 8 の新機能: 検証と署名の追加 Mar 27, 2024 am 08:21 AM

PHP8 は PHP の最新バージョンであり、プログラマーにさらなる利便性と機能をもたらします。このバージョンはセキュリティとパフォーマンスに特に重点を置いており、注目すべき新機能の 1 つは検証および署名機能の追加です。この記事では、これらの新機能とその使用法について詳しく説明します。検証と署名は、コンピューター サイエンスにおける非常に重要なセキュリティ概念です。これらは、送信されるデータが完全で本物であることを確認するためによく使用されます。オンライン取引や機密情報を扱う場合、検証と署名がさらに重要になります。誰かがデータを改ざんできると、潜在的にデータが改ざんされる可能性があるためです。

正規表現を使用して IFSC コードを検証するにはどうすればよいですか? 正規表現を使用して IFSC コードを検証するにはどうすればよいですか? Aug 26, 2023 pm 10:17 PM

Indian Financial System Code の略称です。電子資金移動システムに参加しているインドの銀行支店は、特別な 11 文字のコードで識別されます。インド準備銀行は、インターネット取引でこのコードを使用して銀行間で資金を送金します。 IFSC コードは 2 つの部分に分かれています。銀行は最初の 4 文字で識別され、支店は最後の 6 文字で識別されます。 NEFT (National Electronic Funds Transfer)、RTGS (Real Time Gross Settlement)、および IMPS (Immediate Payment Service) は、IFSC コードを必要とする電子トランザクションの一部です。方法 正規表現を使用して IFSC コードを検証する一般的な方法は次のとおりです。 長さが正しいかどうかを確認します。最初の 4 文字を確認してください。 5 番目の文字を確認してください。Che

golangで入力が大文字かどうかを確認する方法 golangで入力が大文字かどうかを確認する方法 Jun 24, 2023 am 09:06 AM

Golang は高性能で最新のプログラミング言語であり、日常の開発では文字列処理が頻繁に行われます。その中で、入力が大文字であるかどうかを検証することは共通の要件です。この記事ではGolangで入力が大文字かどうかを確認する方法を紹介します。方法 1: unicode パッケージを使用する Golang の unicode パッケージは、文字のエンコード タイプを決定する一連の関数を提供します。大文字の場合、対応するエンコード範囲は 65 ~ 90 (10 進数) であるため、unicode を使用できます。

golangで入力が全角文字かどうかを確認する方法 golangで入力が全角文字かどうかを確認する方法 Jun 25, 2023 pm 02:03 PM

golang では、入力が全角文字であるかどうかを検証するために Unicode エンコードとルーンの種類が必要です。 Unicode エンコードは、全角文字と半角文字を含む文字セット内の各文字に一意の数値コード ポイントを割り当てる文字エンコード標準です。ルーン タイプは、golang で Unicode 文字を表すために使用されるタイプです。最初のステップは、入力をルーン タイプのスライスに変換することです。これは、golang の []rune タイプを使用して変換できます。

Laravelでルートパラメータを検証するにはどうすればよいですか? Laravelでルートパラメータを検証するにはどうすればよいですか? Sep 01, 2023 pm 02:41 PM

Laravel では、ルートは path/ フォルダー内に定義されます。ルートは web.php ファイルで定義されます。このファイルはlaravelのインストールが完了した後に作成されます。 Laravel ルートは次のように URI とクロージャ関数を受け入れます - useIlluminate\Support\Facades\Route;Route::get('/student',function(){return'HelloStudent';}); in web/routes.php 定義されたルートが割り当てられますWeb ミドルウェア グループに接続されており、セッション状態と CSRF 保護が備わっています。以下のようなルートでコントローラーを呼び出すこともできます

golangで入力がすべて漢字かどうかを確認する方法 golangで入力がすべて漢字かどうかを確認する方法 Jun 24, 2023 am 09:16 AM

時代の発展に伴い、私たちはデータの検証、特にユーザー入力の検証にますます注目しています。言語検証においては、入力された文字がすべて漢字であるかどうかをいかに正確に判定するかが重要な課題となっている。 golang では、unicode パッケージと regexp パッケージを使用してこの要件を達成できます。 1. Unicode パッケージ Unicode パッケージは、Unicode に対する一連のコア サポートを提供します。このパッケージの関数を使用すると、文字が漢字かどうかを正確に判断できます。

See all articles