溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

.net如何實現(xiàn)動態(tài)驗證碼功能

發(fā)布時間:2021-04-26 10:19:28 來源:億速云 閱讀:152 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹.net如何實現(xiàn)動態(tài)驗證碼功能,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!

緒論:本文是.net實現(xiàn)動態(tài)驗證碼的顯示,需使用到一般處理程序(ashx)

來看看實現(xiàn)的效果圖

1.登錄成功

.net如何實現(xiàn)動態(tài)驗證碼功能

2.驗證碼錯誤登錄失敗

.net如何實現(xiàn)動態(tài)驗證碼功能


看過了上面的開始實現(xiàn)吧 先把驗證碼搞出來
首先要創(chuàng)建一個ashx的文件(一般處理文件)

.net如何實現(xiàn)動態(tài)驗證碼功能

創(chuàng)建好了就是這樣的,如果沒有一般處理請看下面:右擊添加新項,然后找到一般處理程序

.net如何實現(xiàn)動態(tài)驗證碼功能
.net如何實現(xiàn)動態(tài)驗證碼功能

然后把下面的代碼放進(jìn)去

//定義輸出類型 圖片類型 jpeg
        context. Response.ContentType = "image/jpeg";
        //定義畫布尺寸
        Bitmap bm = new Bitmap(100,30);
        //定義畫布
        Graphics gh = Graphics.FromImage(bm);
        //定義內(nèi)容
        //Random rd = new Random();
        //int i = rd.Next(100000, 999999);
        //將內(nèi)容(隨機(jī)數(shù))嵌入到畫布 參數(shù)(文本,字體,距離圖畫左邊的距離,距離圖畫上邊的距離)
        gh.DrawString(context.Request["sjs"].ToString(), new Font("宋體",20), Brushes.White, 0,0);
        //保存圖片 將圖片以二進(jìn)制形式保存輸出
        bm.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);

.net如何實現(xiàn)動態(tài)驗證碼功能

記得引入頭文件,上面代碼都有注釋可以自己看看,需要注意的是,我們這里的隨機(jī)數(shù)是aspx后臺傳過來的,使用Response.request

來看一下后臺代碼aspx

.net如何實現(xiàn)動態(tài)驗證碼功能

上面這個是自己寫了個函數(shù)然后調(diào)用

Image1.ImageUrl = "~/hander/randomnum.ashx?sjs=" + i;

這個代碼是前臺放了個image控件,aspx傳值。 sjs 是要傳到一般處理程序那邊去的
來看一下怎么實現(xiàn)代碼

.net如何實現(xiàn)動態(tài)驗證碼功能

這里定義的static i=0,是為了不讓他每次都會變另外一個隨機(jī)數(shù)

.net如何實現(xiàn)動態(tài)驗證碼功能

在登錄按鈕這里,使用那個i判斷驗證碼框是否相等,不然會出現(xiàn)一點點小bug

以上就是所有的動態(tài)驗證碼的實現(xiàn)了,主要還是一般處理文件設(shè)置好,然后傳過去就可以了。

以上是“.net如何實現(xiàn)動態(tài)驗證碼功能”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI