ASP.NETにおけるログインページ検証コードの実装


ログインページを作成するときは、通常、不正者が他の手段で不正にログインしないように認証コードを設定する必要があります.ページの認証コードを作成するには、まずActiveのWebページを作成して、数字とアルファベットをランダムに生成し、生成した数字をSessionに格納し、ログインページに渡して検証する必要があります.さらに、認証コードの背景色をActiveページに描画するパネルを定義します.Activeページのコードは次のとおりです.
 protected void Page_Load(object sender, EventArgs e)
    {
        //     
        this.GenImg(this.GenCode(4));
        Session["image"] = this.GenCode(4);
        Server.Transfer("Default.aspx");
        //Console.WriteLine(this.GenCode(4));
    }
    private string GenCode(int num)
    {
        string [] source={"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P,","Q","R","S","T","U","V","W","X","Y","Z"};
        string code = "";
        //  Random    
        Random rd = new Random();
        //     
        for (int i = 0; i < num; i++)
        {
            code += source[rd.Next(0, source.Length)];

        }
        //        
        return code;
    }

    //    
    private void GenImg(string code)
    {
        //      
        Bitmap myPalette = new Bitmap(60, 20);
        //           
        Graphics gh = Graphics.FromImage(myPalette);
        //      
        Rectangle rc = new Rectangle(0, 0, 60, 20);
        //    
        gh.FillRectangle(new SolidBrush(Color.Blue), rc);
        //         
        gh.DrawString(code, new Font("  ", 16), new SolidBrush(Color.White), rc);
        //       
        myPalette.Save(Response.OutputStream, ImageFormat.Jpeg);
        gh.Dispose();
        myPalette.Dispose();
    }
Activeページで動的にランダムに認証コードを生成した後、ログインページで受信し、ランダムに生成した認証コードを表示します.コードは以下の通りです.
protected void Page_Load(object sender, EventArgs e)
    {
        //  btnimage   ImageUrl         
        this.ImageButton1.ImageUrl = "Active.aspx";
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        string Code =Session["image"].ToString().Trim();
        //Console.WriteLine(Code);

        string Txtbox = this.TextBox3.Text.ToString().Trim();
        if (Code==Txtbox.ToUpper())
        {
            Response.Redirect("Result.aspx");
        }
        else
            Response.Write("<script language='javascript'>alert('    !');</script>");
    }

これにより、検証コードを動的に生成する全プロセスが完了し、検証コードが完了する.