亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Asp.net2005不用Ajax實現無刷新驗證用戶名、密

系統 2191 0

Asp.net2005不用Ajax實現無刷新驗證用戶名、密碼和中文驗證碼

主要功能:無刷新實現對用戶名,密碼,中文驗證碼的驗證!

技術要點:使用.NEt2005中新接口“ICallbackEventHandler”用asp.net動態生成中文驗證碼

話不多說,直接看代碼,

只要有兩個頁面 Login.aspx 和 ImageR .aspx

Login.aspx 的代碼如下:

<% @PageLanguage = " C# " AutoEventWireup = " true " CodeFile = " Login.aspx.cs " Inherits = " Login " %>

<! DOCTYPEhtmlPUBLIC " -//W3C//DTDXHTML1.0Transitional//EN " " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd " >

< htmlxmlns = " http://www.w3.org/1999/xhtml " >
< headrunat = " server " >
< title > Login </ title >
< scriptlanguage = " javascript " type = " text/javascript " >
vardiv;
functioncallback()
... {
varname
= document.getElementById( " UserName " ).value;
varpass
= document.getElementById( " PassWord " ).value;
varcheckcode
= document.getElementById( " CheckCode " ).value;
div
= document.getElementById( " show_msg " );
div.innerHTML
= " <imgsrc=img/loading.gif> " + ' 正在加載,請稍后..... ' ;
div.style.backgroundColor
= " AliceBlue " ;
dos(name
+ " & " + pass + " & " + checkcode);
}

functionReceiveServerData(text)
... {
alert(text);
div.style.display
= " none " ;
location.href
= location.href;
}

functionover(o)
... {
o.style.borderColor
= " #9ECC00 " ;
}

function
out (o)
... {
o.style.borderColor
= " #A9BAC9 " ;
}

</ script >
</ head >
< body >
< formid = " form1 " runat = " server " >
< div >
< tablestyle = " width:218px;height:96px; " >
< tr >
< tdstyle = " width:35px " >
< asp:LabelID = " Label1 " runat = " server " Text = " UserName " ></ asp:Label ></ td >
< tdstyle = " width:205px " >
< inputid = " UserName " type = " text " style = " border-style:groove;border-color:#A9BAC9;width:148px " onmouseout = " out(this) " onmouseover = " over(this) " /></ td >
</ tr >
< tr >
< tdstyle = " width:35px;height:12px; " >
< asp:LabelID = " Label2 " runat = " server " Text = " PassWord " Width = " 44px " ></ asp:Label ></ td >
< tdstyle = " width:205px;height:12px; " >
< inputid = " PassWord " type = " password " style = " border-style:groove;border-color:#A9BAC9;width:148px " onmouseout = " out(this) " onmouseover = " over(this) " /></ td >
</ tr >
< tr >
< td >
< asp:ImageID = " Image1 " runat = " server " ImageUrl = " ImageR.aspx " /></ td >
< tdstyle = " height:13px;width:205px; " >
< inputid = " CheckCode " style = " border-style:groove;border-color:#A9BAC9;width:55px " onmouseout = " out(this) " onmouseover = " over(this) " type = " text " maxlength = " 4 " /></ td >

</ tr >
< tr >
< tdstyle = " height:26px " >
</ td >
< tdstyle = " width:205px;height:26px " >
< inputid = " Login " type = " button " value = " 登 陸 " onclick = " callback() " style = " width:60px " />
</ td >
</ tr >
< tr >
< tdstyle = " width:35px; " >
</ td >
< tdstyle = " width:205px; " >
< divid = " show_msg " ></ div >
</ td >
</ tr >
</ table >

</ div >
</ form >
</ body >
</ html >

Login.aspx.cs 的代碼如下:這個頁面實現自 ICallbackEventHandler 接口

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class Login:System.Web.UI.Page,ICallbackEventHandler
... {
private string result;
protected void Page_Load( object sender,EventArgse)
... {
if ( ! Page.IsPostBack)
... {
string cbReference = Page.ClientScript.GetCallbackEventReference( this , " text " , " ReceiveServerData " , "" ); // 獲取一個對客戶端函數的引用;調用該函數時,將啟動一個對服務器端事件的客戶端回調。
string callbackScript = " functiondos(text){ " + cbReference + " ;} " ; // 注冊客戶端方法
Page.ClientScript.RegisterClientScriptBlock( this .GetType(), " dos " ,callbackScript, true ); // 向客戶端寫入腳本塊
}

}

/**/ /// <summary>
/// 處理回調事件。
/// </summary>
/// <paramname="text"></param>

public void RaiseCallbackEvent( string text)
... {
string checkcode = ( string )Session[ " Code " ];
string []j = text.Split( new char [] ... { ' & ' } , 3 );
if (j[ 2 ] != checkcode)
result
= " 驗證碼錯誤!請重新輸入 " ;
else if (j[ 0 ] == " 1111 " && j[ 1 ] == " 2222 " )
result
= " 登陸成功! " ;
else
result
= " 登陸失敗! " ;
}

/**/ /// <summary>
/// 返回回調事件的結果。
/// </summary>
/// <returns></returns>

public string GetCallbackResult()
... {
return result;
}


}

ImageR .aspx 頁面無內容,主要在 ImageR .aspx.cs里 代碼如下:

using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.Drawing.Drawing2D;

public partial class ImageR :System.Web.UI.Page
... {
protected void Page_Load( object sender,EventArgse)
... {
CreateCheckCodeImage(GenCode(
4 ));
}

/**/ /// <summary>
/// '產生隨機字符串
/// </summary>
/// <paramname="num"> 隨機出幾個字符 </param>
/// <returns> 隨機出的字符串 </returns>

private string GenCode( int num)
... {
string str = " 的一是在不了有和人這中大為上個國我以要他時來用們生到作地于出就分對成會可主發年動同工也能下過子說產種面而方后多定行學法所民得經十三之進著等部度家電力里如水化高自二理起小物現實加量都兩體制機當使點從業本去把性好應開它合還因由其些然前外天政四日那社義事平形相全表間樣與關各重新線內數正心反你明看原又么利比或但質氣第向道命此變條只沒結解問意建月公無系軍很情者最立代想已通并提直題黨程展五果料象員革位入常文總次品式活設及管特件長求老頭基資邊流路級少圖山統接知較將組見計別她手角期根論運農指幾九區強放決西被干做必戰先回則任取據處隊南給色光門即保治北造百規熱領七海口東導器壓志世金增爭濟階油思術極交受聯什認六共權收證改清己美再采轉更單風切打白教速花帶安場身車例真務具萬每目至達走積示議聲報斗完類八離華名確才科張信馬節話米整空元況今集溫傳土許步群廣石記需段研界拉林律叫且究觀越織裝影算低持音眾書布復容兒須際商非驗連斷深難近礦千周委素技備半辦青省列習響約支般史感勞便團往酸歷市克何除消構府稱太準精值號率族維劃選標寫存候毛親快效斯院查江型眼王按格養易置派層片始卻專狀育廠京識適屬圓包火住調滿縣局照參紅細引聽該鐵價嚴 " ;
char []chastr = str.ToCharArray();
// 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 = "" ;
Randomrd
= new Random();
int i;
for (i = 0 ;i < num;i ++ )
... {
// code+=source[rd.Next(0,source.Length)];
code += str.Substring(rd.Next( 0 ,str.Length), 1 );
}

return code;

}


/**/ /// <summary>
/// 生成圖片(增加背景噪音線、前景噪音點)
/// </summary>
/// <paramname="checkCode"> 隨機出字符串 </param>

private void CreateCheckCodeImage( string checkCode)
... {
if (checkCode.Trim() == "" || checkCode == null )
return ;
Session[
" Code " ] = checkCode; // 將字符串保存到Session中,以便需要時進行驗證
System.Drawing.Bitmapimage = new System.Drawing.Bitmap(( int )(checkCode.Length * 21.5 ), 22 );
Graphicsg
= Graphics.FromImage(image);
try
... {
// 生成隨機生成器
Randomrandom = 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);
}


Fontfont
= new System.Drawing.Font( " Arial " , 12 ,(System.Drawing.FontStyle.Bold));
System.Drawing.Drawing2D.LinearGradientBrushbrush
= 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.MemoryStreamms
= new System.IO.MemoryStream();
image.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);
Response.ClearContent();
Response.ContentType
= " image/Gif " ;
Response.BinaryWrite(ms.ToArray());

}

catch
... {
g.Dispose();
image.Dispose();
}


}

}

保存直接運行即可!

Asp.net2005不用Ajax實現無刷新驗證用戶名、密碼和中文驗證碼


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲一级生活片 | 亚洲精品国产成人 | 中文字幕亚洲专区 | 99视频精品国在线视频艾草 | 色狠狠狠色噜噜噜综合网 | 伊人精品在线 | 在线看国产精品 | 中文字幕在线最新在线不卡 | 久久亚 | 欧美色视频日本片免费高清 | 手机看福利 | 福利精品| 免费看国产片 | 伊人久久综合热青草 | 国产一区二区三区在线观看精品 | 久草视频福利在线观看 | 四虎最新永久免费视频 | 香蕉一级视频 | jizz孕妇孕交 | 四虎精品 | 国产午夜亚洲精品不卡福利 | 天天舔天天射天天干 | 狠狠操夜夜爽 | 国产精品久久在线观看 | 天天操天天射天天爽 | 亚洲视频在线观看地址 | 欧美一级毛片特黄黄 | 偷偷狠狠的日日高清完整视频 | 尤物福利视频 | 99热这里只有精品国产在热久久 | 亚洲性生活 | 亚洲欧美日韩图片 | aaa黑人一级毛片 | 国产成a人片在线观看视频99 | 毛片基地免费视频a | 久久性生大片免费观看性 | 欧美成人观看视频在线 | 亚洲精品中文字幕不卡在线 | 泰国理论片 | 97色在线播放| 橘梨纱视频一区二区在线观看 |