日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

ASP.NET如何防止用戶多次登錄_.Net教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:ASP.NET 2.0中文驗證碼的實現(xiàn)
在判斷的時候只要把取得的文本框的值與Session[valicode] 進(jìn)行判斷是否一致就行了。 //建立位圖對象 Bitmap NewbitMap = new Bitmap(90, 22, PixelFormat.Format32bppArgb); //根據(jù)上面創(chuàng)建的位置對象創(chuàng)建繪圖面 Graphics g = Graphics.FromImage(NewbitMap)

常見的處理方法是,在用戶登錄時,判斷此用戶是否已經(jīng)在Application中存在,如果存在就報錯,不存在的話就加到Application中(Application是所有Session共有的,整個web應(yīng)用程序唯一的一個對象):

以下是引用片段:

string strUserId = txtUser.Text;

ArrayList list = Application.Get("GLOBAL_USER_LIST") as ArrayList;

if (list == null)

{

list = new ArrayList();

}

for (int i = 0; i < list.Count; i )

{

if (strUserId == (list[i] as string))

{

//已經(jīng)登錄了,提示錯誤信息

lblError.Text = "此用戶已經(jīng)登錄";

return;

}

}

list.Add(strUserId);

Application.Add("GLOBAL_USER_LIST", list);

當(dāng)然這里使用Cache等保存也可以。

接下來就是要在用戶退出的時候?qū)⒋擞脩魪腁pplication中去除,我們可以在Global.asax的Session_End事件中處理:

以下是引用片段:

void Session_End(object sender, EventArgs e)

{

// 在會話結(jié)束時運(yùn)行的代碼。

// 注意: 只有在 Web.config 文件中的 sessionstate 模式設(shè)置為

// InProc 時,才會引發(fā) Session_End 事件。如果會話模式設(shè)置為 StateServer

// 或 SQLServer,則不會引發(fā)該事件。

string strUserId = Session["SESSION_USER"] as string;

ArrayList list = Application.Get("GLOBAL_USER_LIST") as ArrayList;

if (strUserId != null && list != null)

{

list.Remove(strUserId);

Application.Add("GLOBAL_USER_LIST", list);

}

}

這些都沒有問題,有問題的就是當(dāng)用戶直接點(diǎn)瀏覽器右上角的關(guān)閉按鈕時就有問題了。因為直接關(guān)閉的話,并不會立即觸發(fā)Session過期事件,也就是關(guān)閉瀏覽器后再來登錄就登不進(jìn)去了。

這里有兩種處理方式:

1、使用Javascript方式

在每一個頁面中加入一段javascript代碼:

以下是引用片段:

function window.onbeforeunload()

{

if (event.clientX>document.body.clientWidth && event.clientY< 0||event.altKey){

window.open("logout.aspx");

}

}

由于onbeforeunload方法在瀏覽器關(guān)閉、刷新、頁面調(diào)轉(zhuǎn)等情況下都會被執(zhí)行,所以需要判斷是點(diǎn)擊了關(guān)閉按鈕或是按下Alt F4時才執(zhí)行真正的關(guān)閉操作。

分享:解讀ASP.NET網(wǎng)絡(luò)編程中經(jīng)常用到的27個函數(shù)集
1、DateTime 數(shù)字型 以下是引用片段: System.DateTime currentTime=new System.DateTime(); 1.1 取當(dāng)前年月日時分秒 currentTime=System.DateTime.Now; 1.2 取當(dāng)前年 int 年=currentTime.Year; 1.3 取當(dāng)前月 int 月=currentTime.Month; 1.4 取當(dāng)前日 int 日

共2頁上一頁12下一頁
來源:模板無憂//所屬分類:.Net教程/更新時間:2009-05-17
相關(guān).Net教程