最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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


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

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

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

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

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

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


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

相關(guān)文章

  • asp.net Coolite 學(xué)習(xí)交流

    asp.net Coolite 學(xué)習(xí)交流

    近來(lái)不知什么原因,發(fā)現(xiàn)國(guó)人有不少開(kāi)始學(xué)習(xí)Coolite了,對(duì)于有些人可能不知道什么是Coolite,這里先簡(jiǎn)單介紹一下
    2009-05-05
  • 如何實(shí)現(xiàn)ListView高效分頁(yè)代碼

    如何實(shí)現(xiàn)ListView高效分頁(yè)代碼

    ListView選擇自動(dòng)分頁(yè)時(shí) 其實(shí)就是添加了一個(gè)DataPager分頁(yè)控件兩者間存在著嵌套關(guān)系《Repeater與ListView》中提到這樣的分頁(yè)并不是高效的 因?yàn)閿?shù)據(jù)源還是返回了所有的數(shù)據(jù) 而非當(dāng)前頁(yè)數(shù)據(jù)
    2013-02-02
  • ASP.NET XmlDocument類(lèi)詳解

    ASP.NET XmlDocument類(lèi)詳解

    這篇文章主要介紹了ASP.NET XmlDocument類(lèi)詳解,本文講解了XmlDocument的屬性、XmlDocument的方法、XmlDocument的事件、XmlDocument的使用實(shí)例等內(nèi)容,需要的朋友可以參考下
    2015-05-05
  • .Net集合排序的一種高級(jí)玩法實(shí)例教程

    .Net集合排序的一種高級(jí)玩法實(shí)例教程

    這篇文章主要給大家介紹了關(guān)于.Net集合排序的一種高級(jí)玩法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-05-05
  • asp.net 按指定模板導(dǎo)出word,pdf實(shí)例代碼

    asp.net 按指定模板導(dǎo)出word,pdf實(shí)例代碼

    這篇文章介紹了asp.net 按指定模板導(dǎo)出word,pdf實(shí)例代碼,有需要的朋友可以參考一下
    2013-09-09
  • Asp.net 獲取指定目錄下的后綴名為".doc" 的所有文件名和文件路徑

    Asp.net 獲取指定目錄下的后綴名為".doc" 的所有文件名和文件路徑

    Asp.net 獲取指定目錄下的后綴名為“.doc” 的所有文件名和文件路徑,幫寫(xiě)一個(gè)方法
    2011-07-07
  • asp.net利用HttpModule實(shí)現(xiàn)防sql注入

    asp.net利用HttpModule實(shí)現(xiàn)防sql注入

    關(guān)于sql注入,已經(jīng)被很多人討論過(guò)了。這篇沒(méi)有新意功能也不夠通用,nnd,不想引起口水,就是覺(jué)得簡(jiǎn)單而且思路有參考性才貼出來(lái)。
    2009-12-12
  • asp.net 4.0+ webform程序中集成mvc4

    asp.net 4.0+ webform程序中集成mvc4

    這篇文章主要介紹了asp.net 4.0+ webform程序中集成mvc4的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • .net連接oracle的3種實(shí)現(xiàn)方法

    .net連接oracle的3種實(shí)現(xiàn)方法

    這篇文章介紹了.net連接oracle的3種實(shí)現(xiàn)方法,有需要的朋友可以才可以一下
    2013-07-07
  • 收集學(xué)習(xí)asp.net比較完整的面向?qū)ο箝_(kāi)發(fā)流程

    收集學(xué)習(xí)asp.net比較完整的面向?qū)ο箝_(kāi)發(fā)流程

    如果你已經(jīng)有較多的面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),跳過(guò)以下這兩步 第一步:掌握一門(mén).NET面向?qū)ο笳Z(yǔ)言第二步:對(duì).NET Framework類(lèi)庫(kù)有一定的了解;在具備了OO基礎(chǔ)之后,以下是具體的學(xué)習(xí)ASP.NET技術(shù)步驟
    2012-12-12

最新評(píng)論

永年县| 富民县| 宁波市| 宁阳县| 东宁县| 大名县| 河间市| 鄢陵县| 环江| 中牟县| 米泉市| 商南县| 商南县| 浦江县| 四川省| 西昌市| 商南县| 宣武区| 蒲江县| 蒲江县| 蒲江县| 天祝| 齐齐哈尔市| 漯河市| 莫力| 汤原县| 霍州市| 突泉县| 保靖县| 若羌县| 泰顺县| 香格里拉县| 高台县| 东乡| 海门市| 镇雄县| 行唐县| 沈丘县| 通山县| 岳普湖县| 科尔|