黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

Asp.net2005不用Ajax實(shí)現(xiàn)無刷新驗(yàn)證用戶名、密

系統(tǒng) 2759 0

Asp.net2005不用Ajax實(shí)現(xiàn)無刷新驗(yàn)證用戶名、密碼和中文驗(yàn)證碼

主要功能:無刷新實(shí)現(xiàn)對(duì)用戶名,密碼,中文驗(yàn)證碼的驗(yàn)證!

技術(shù)要點(diǎn):使用.NEt2005中新接口“ICallbackEventHandler”用asp.net動(dòng)態(tài)生成中文驗(yàn)證碼

話不多說,直接看代碼,

只要有兩個(gè)頁面 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> " + ' 正在加載,請(qǐng)稍后..... ' ;
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 的代碼如下:這個(gè)頁面實(shí)現(xiàn)自 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 " , "" ); // 獲取一個(gè)對(duì)客戶端函數(shù)的引用;調(diào)用該函數(shù)時(shí),將啟動(dòng)一個(gè)對(duì)服務(wù)器端事件的客戶端回調(diào)。
string callbackScript = " functiondos(text){ " + cbReference + " ;} " ; // 注冊(cè)客戶端方法
Page.ClientScript.RegisterClientScriptBlock( this .GetType(), " dos " ,callbackScript, true ); // 向客戶端寫入腳本塊
}

}

/**/ /// <summary>
/// 處理回調(diào)事件。
/// </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
= " 驗(yàn)證碼錯(cuò)誤!請(qǐng)重新輸入 " ;
else if (j[ 0 ] == " 1111 " && j[ 1 ] == " 2222 " )
result
= " 登陸成功! " ;
else
result
= " 登陸失??! " ;
}

/**/ /// <summary>
/// 返回回調(diào)事件的結(jié)果。
/// </summary>
/// <returns></returns>

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


}

ImageR .aspx 頁面無內(nèi)容,主要在 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>
/// '產(chǎn)生隨機(jī)字符串
/// </summary>
/// <paramname="num"> 隨機(jī)出幾個(gè)字符 </param>
/// <returns> 隨機(jī)出的字符串 </returns>

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

private void CreateCheckCodeImage( string checkCode)
... {
if (checkCode.Trim() == "" || checkCode == null )
return ;
Session[
" Code " ] = checkCode; // 將字符串保存到Session中,以便需要時(shí)進(jìn)行驗(yàn)證
System.Drawing.Bitmapimage = new System.Drawing.Bitmap(( int )(checkCode.Length * 21.5 ), 22 );
Graphicsg
= Graphics.FromImage(image);
try
... {
// 生成隨機(jī)生成器
Randomrandom = new Random();

// 清空?qǐng)D片背景色
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 );

// 畫圖片的前景噪音點(diǎn)
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();
}


}

}

保存直接運(yùn)行即可!

Asp.net2005不用Ajax實(shí)現(xiàn)無刷新驗(yàn)證用戶名、密碼和中文驗(yàn)證碼


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

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

【本文對(duì)您有幫助就好】

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

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論