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>");
}
これにより、検証コードを動的に生成する全プロセスが完了し、検証コードが完了する.