国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

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

2024-07-10 12:50:53
字體:
來源:轉載
供稿:網友

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

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

以下是引用片段:

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))

{

//已經登錄了,提示錯誤信息

lblError.Text = "此用戶已經登錄";

return;

}

}

list.Add(strUserId);

Application.Add("GLOBAL_USER_LIST", list);

當然這里使用Cache等保存也可以。

接下來就是要在用戶退出的時候將此用戶從Application中去除,我們可以在Global.asax的Session_End事件中處理:

以下是引用片段:

void Session_End(object sender, EventArgs e)

{

// 在會話結束時運行的代碼。

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

// InProc 時,才會引發 Session_End 事件。如果會話模式設置為 StateServer

// 或 SQLServer,則不會引發該事件。

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);

}

}

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

這里有兩種處理方式:

1、使用Javascript方式

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

以下是引用片段:

function window.onbeforeunload()

{

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

window.open("logout.aspx");

}

}

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

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

共2頁上一頁12下一頁
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 沽源县| 社旗县| 江山市| 工布江达县| 东方市| 怀宁县| 通山县| 布尔津县| 隆尧县| 瓮安县| 贺州市| 师宗县| 靖远县| 临泽县| 桂平市| 萍乡市| 休宁县| 绵阳市| 逊克县| 山阳县| 湄潭县| 虎林市| 百色市| 龙里县| 习水县| 开鲁县| 建始县| 年辖:市辖区| 大新县| 加查县| 师宗县| 博爱县| 滕州市| 呼伦贝尔市| 彰化市| 阳信县| 改则县| 从江县| 德钦县| 张家口市| 兰西县|