、 'G'、 'H'、 'J'、 'K'、 'L'、 'M'、 'N'、 'P'、 'R'、 'S'、 'T'、 'W'、 ' X」、 'Y'}。 ランダムRND =新しいランダム();
//生成验证码字符串
ため(INT i = 0; iは<4; I ++)
{
chkCode + =キャラクタ[rnd.Next(character.Length)]。
}
ビットマップBMP =新しいビットマップ(IX、IY)。
グラフィックG = Graphics.FromImage(BMP)。
g.Clear(Color.White)。
//画噪线
(INT i = 0; iが10 <; I ++)のために
{
int型X1を= rnd.Next(IX)。
INT Y1 = rnd.Next(IY)。
int型×2 = rnd.Next(IX);
INT Y2 = rnd.Next(IY)。
色CLR =カラー[rnd.Next(color.Length)]。
g.DrawLine(新しいペン(CLR)、X1、Y1、X2、Y2);
}
//画验证码字符串
ため(INT i = 0; iはchkCode.Lengthを<; iは++)
{
文字列FNT =フォント[rnd.Next(font.Length)]。
フォントFT =新しいフォント(FNT、14、FontStyle.Bold)。
色CLR =カラー[rnd.Next(color.Length)]。
g.DrawString(chkCode [I])(.ToString、フィート、新しいSolidBrush(CLR)、(フロート)iは、フロート(16 + 2 *)2)。
}
//画噪点
ため(INT i = 0; iは50 <; Iは++)
{
int型のx = rnd.Next(bmp.Width)。
Y INT = rnd.Next(bmp.Height)。
色CLR =カラー[rnd.Next(color.Length)]。
bmp.SetPixel(X、Y、CLR)。
}
コードをSESSIONを書く//
; = chkCode.ToLower()[ "チェックコード"]セッション
//ページ出力キャッシュ、キャッシュ設けないページ消去
でResponse.Buffer = TRUEにし、
Response.ExpiresAbsolute = System.DateTime.Now .AddMilliseconds(0);
Response.Expires = 0;
Response.CacheControl = "NO-キャッシュ";
Response.AppendHeader( "プラグマ"、 "キャッシュなし");
//メモリ書き込み検証映像ストリーム、及びその出力「画像/ PNG形式」のフォーマット
//生成验证码字符串
ため(INT i = 0; iは<4; I ++)
{
chkCode + =キャラクタ[rnd.Next(character.Length)]。
}
ビットマップBMP =新しいビットマップ(IX、IY)。
グラフィックG = Graphics.FromImage(BMP)。
g.Clear(Color.White)。
//画噪线
(INT i = 0; iが10 <; I ++)のために
{
int型X1を= rnd.Next(IX)。
INT Y1 = rnd.Next(IY)。
int型×2 = rnd.Next(IX);
INT Y2 = rnd.Next(IY)。
色CLR =カラー[rnd.Next(color.Length)]。
g.DrawLine(新しいペン(CLR)、X1、Y1、X2、Y2);
}
//画验证码字符串
ため(INT i = 0; iはchkCode.Lengthを<; iは++)
{
文字列FNT =フォント[rnd.Next(font.Length)]。
フォントFT =新しいフォント(FNT、14、FontStyle.Bold)。
色CLR =カラー[rnd.Next(color.Length)]。
g.DrawString(chkCode [I])(.ToString、フィート、新しいSolidBrush(CLR)、(フロート)iは、フロート(16 + 2 *)2)。
}
//画噪点
ため(INT i = 0; iは50 <; Iは++)
{
int型のx = rnd.Next(bmp.Width)。
Y INT = rnd.Next(bmp.Height)。
色CLR =カラー[rnd.Next(color.Length)]。
bmp.SetPixel(X、Y、CLR)。
}
コードをSESSIONを書く//
; = chkCode.ToLower()[ "チェックコード"]セッション
//ページ出力キャッシュ、キャッシュ設けないページ消去
でResponse.Buffer = TRUEにし、
Response.ExpiresAbsolute = System.DateTime.Now .AddMilliseconds(0);
Response.Expires = 0;
Response.CacheControl = "NO-キャッシュ";
Response.AppendHeader( "プラグマ"、 "キャッシュなし");
//メモリ書き込み検証映像ストリーム、及びその出力「画像/ PNG形式」のフォーマット
; =新しい新規のMemoryStreamのMemoryStream()MS
試行
{
bmp.Save(MS、ImageFormat.Png);
Response.ClearContent();
Response.ContentTypeの= "画像/ PNGファイル";
Response.BinaryWrite(ms.ToArray());
}
最後に
{
//明示的リソース解放
bmp.Disposeを();
g.Dispose();
}
login.aspxの、画像制御IMAGEURL = "checkcode.aspx"缶を提供追加。
<ASP:イメージID = "画像1 "にrunat = "サーバー" οnclick= ImageAlign = "中央"ツールヒントは= " 私をタップし、私を見て!" / "this.src = this.src + '?'">
onclickのの一つがTooTip属性と非常に便利なことに注意してください!または使用します。
<スパンのスタイル= "カーソル:ポインタ ;テキスト装飾:下線;" οnclick= "のdocument.getElementById( 'イメージ1')SRC =のdocument.getElementById( 'イメージ1')のsrc + .. '?'"> トランスデューサ</ span>の
入力検出は、テキスト入力ボックスを読み取ることができ、およびセッションの値が比較されます。
試行
{
bmp.Save(MS、ImageFormat.Png);
Response.ClearContent();
Response.ContentTypeの= "画像/ PNGファイル";
Response.BinaryWrite(ms.ToArray());
}
最後に
{
//明示的リソース解放
bmp.Disposeを();
g.Dispose();
}
login.aspxの、画像制御IMAGEURL = "checkcode.aspx"缶を提供追加。
<ASP:イメージID = "画像1 "にrunat = "サーバー" οnclick= ImageAlign = "中央"ツールヒントは= " 私をタップし、私を見て!" / "this.src = this.src + '?'">
onclickのの一つがTooTip属性と非常に便利なことに注意してください!または使用します。
<スパンのスタイル= "カーソル:ポインタ ;テキスト装飾:下線;" οnclick= "のdocument.getElementById( 'イメージ1')SRC =のdocument.getElementById( 'イメージ1')のsrc + .. '?'"> トランスデューサ</ span>の
入力検出は、テキスト入力ボックスを読み取ることができ、およびセッションの値が比較されます。