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

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條評論
主站蜘蛛池模板: 香蕉视频网站在线观看 | 亚洲国产精品一区二区三区 | 欧美性视频在线激情 | 久久精品视频在线 | 色综合久久加勒比高清88 | 亚洲产在线精品第一站不卡 | 日本a在线观看 | 日本在线黄色 | 久久影片 | 中文字幕精品一区二区三区在线 | 久草小区二区三区四区网页 | 一级毛片视频免费 | 国产精品欧美亚洲韩国日本 | 亚洲欧美另类专区 | 99re8免费视频精品全部 | 欧美老妇免费做爰视频 | 免费一级在线 | 国内夫妇精品对白在线播放 | 欧美日韩亚洲国内综合网香蕉 | 欧美中文综合在线视频 | 黄在线免费看 | 国产精品嫩草研究所永久网址 | 成年男女免费视频观看性 | 亚洲视频国产 | 国产女主播在线 | 久久爱伊人一区二区三区小说 | 日本最新免费二区三区 | 一级a性色生活片毛片 | 天天cao在线 | 国产亚洲精品97在线观看 | 免费看久久 | 在线观看免费视频a | 黄色毛片免费 | 毛片大片 | 久久中文字幕在线观看 | 午夜欧美福利视频 | 天天做天天爱夜夜大爽完整 | 国产一区精品在线 | 亚洲精品福利在线观看 | 性做久久久久久坡多野结衣 | 日韩精品一区在线观看 |