欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

較為全面的Asp.net提交驗證方案分析 (上)

 更新時間:2008年10月13日 09:58:03   作者:  
以前在學(xué)習(xí)Asp.net時備受困擾的就是提交驗證這塊,網(wǎng)上流行的關(guān)于圖片驗證的教程大都存在很多問題
比如:
驗證碼存儲在頁面代碼或Cookies里,暴露給客戶端;
通過Session存儲的驗證碼,雖然解決了安全問題,但一個用戶只使用一個變量存儲驗證碼,假如用戶同時打開一個以上的頁面,分別提交的話,就無法正常使用了;
驗證碼不會過期,這會留下隱患,使暴力破解變得可行(當(dāng)然也可以通過刷新間隔、提交間隔、黑名單等手段加以控制);
此外還有伴隨著提交產(chǎn)生的另一個問題——重復(fù)提交。
為解決上述問題,我曾走過不少彎路,后來總結(jié)出了一個方案可以很好的解決這些問題,本文將結(jié)合ADO.NET Entity Framework技術(shù)來介紹此方案:
這方案的核心就是通過數(shù)據(jù)庫統(tǒng)一存儲所有請求頁面所對應(yīng)的驗證碼及其相關(guān)信息(這也可以通過Session或別的什么實現(xiàn),但個人感覺數(shù)據(jù)庫更為優(yōu)秀)。
首先來建立一個這樣的SQL Server數(shù)據(jù)表,表名設(shè)為“提交驗證”:


ID”字段存儲的是該驗證信息的唯一ID,用于查詢,并且我們還會將此值傳給客戶端用于回發(fā)時再度獲取對應(yīng)的信息,采用GUID格式保證了唯一性和復(fù)雜性,客戶端幾乎沒有偽造的可能;

“會話ID”字段即用于存儲SessionID,以確保驗證信息與用戶會話相對應(yīng),如果你不在意客戶端是否會被劫持的話,也可以忽略這個字段。

“驗證碼”字段即存儲驗證碼原文,用于檢驗用戶輸入,此外,驗證圖片生成函數(shù)也會通過ID獲取此數(shù)據(jù)以生成對應(yīng)的驗證圖片。

“是否已提交”字段標(biāo)識此驗證信息是否已使用過,如果不需要給用戶明確的錯誤提示的話,可以在提交后直接刪除所使用的驗證信息,而不使用這個字段。

“過期時間”字段的數(shù)據(jù)將會在清理超時信息時使用到。

數(shù)據(jù)庫建好后,就可以建立ADO.NET Entity Framework數(shù)據(jù)模型(EDM)了:


此模型從現(xiàn)有數(shù)據(jù)庫直接生成即可,不需要做什么額外改動。未完待續(xù),此篇中介紹了數(shù)據(jù)結(jié)構(gòu)和思路,在下篇中將介紹代碼實現(xiàn)以及使用方法。

相關(guān)文章

  • ASP.NET Core MVC 過濾器的使用方法介紹

    ASP.NET Core MVC 過濾器的使用方法介紹

    本篇文章主要介紹了ASP.NET Core MVC 過濾器的使用方法介紹,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • 解析.Net 4.0 中委托delegate的使用詳解

    解析.Net 4.0 中委托delegate的使用詳解

    本篇文章是對.Net 4.0 中委托delegate的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • .Net?Core讀取文件時中文亂碼問題的解決方法分享

    .Net?Core讀取文件時中文亂碼問題的解決方法分享

    所以關(guān)于讀取文件亂碼的問題,百度上有很多方案,這里再給大家總結(jié)下,這篇文章主要給大家介紹了關(guān)于.Net?Core讀取文件時中文亂碼問題的解決方法,需要的朋友可以參考下
    2022-02-02
  • TreeNodeCheckChanged事件觸發(fā)方法代碼實例

    TreeNodeCheckChanged事件觸發(fā)方法代碼實例

    這篇文章主要介紹了TreeNodeCheckChanged事件觸發(fā)方法代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-12-12
  • ASP.NET登錄注冊頁面實現(xiàn)

    ASP.NET登錄注冊頁面實現(xiàn)

    這篇文章主要介紹了ASP.NET登錄注冊頁面如何實現(xiàn),感興趣的小伙伴們可以參考一下
    2015-10-10
  • .NET實現(xiàn)工資管理系統(tǒng)

    .NET實現(xiàn)工資管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了.NET實現(xiàn)工資管理系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • 使用C#處理WebBrowser控件在不同域名中的跨域問題

    使用C#處理WebBrowser控件在不同域名中的跨域問題

    我們在做web測試時,經(jīng)常會使用WebBrowser來進(jìn)行一些自動化的任務(wù)而有些網(wǎng)頁上面會用IFrame去嵌套別的頁面,這些頁面可能不是在相同域名下的,這時就會出現(xiàn)跨域問題,無法直接在WebBrowser中獲取到IFrame中的元素,接下來介紹如何解決此問題,需要了解的朋友可以參考下
    2012-12-12
  • .Net Core項目如何添加日志功能詳解

    .Net Core項目如何添加日志功能詳解

    這篇文章主要給大家介紹了關(guān)于.Net Core項目如何添加日志功能的相關(guān)資料,日志功能是我們開發(fā)中經(jīng)常需要用到的一個功能,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07
  • 正則一則 將金額轉(zhuǎn)換成人民幣大寫的代碼

    正則一則 將金額轉(zhuǎn)換成人民幣大寫的代碼

    首先聲明,這個正則不是我寫的,來源于互聯(lián)網(wǎng),發(fā)現(xiàn)好用,稍作更改,貼上分享
    2012-01-01
  • asp.net 讀取配置文件方法

    asp.net 讀取配置文件方法

    asp.net 讀取配置文件方法,需要的朋友可以參考下。
    2011-12-12

最新評論