防止重復(fù)提交表單

防止重復(fù)提交表單

ID:36566724

大?。?2.50 KB

頁(yè)數(shù):9頁(yè)

時(shí)間:2019-05-12

防止重復(fù)提交表單_第1頁(yè)
防止重復(fù)提交表單_第2頁(yè)
防止重復(fù)提交表單_第3頁(yè)
防止重復(fù)提交表單_第4頁(yè)
防止重復(fù)提交表單_第5頁(yè)
資源描述:

《防止重復(fù)提交表單》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。

1、防止刷新時(shí)重復(fù)提交表單,以前也研究過,始終沒找到好的辦法,看了微軟Msdn上的解決方案,使用后發(fā)現(xiàn)存在較多漏洞,考慮的情況太少,如頁(yè)面加載后沒有提交,始終刷新,在同一瀏覽器打開多個(gè)各選項(xiàng)卡,每個(gè)選項(xiàng)卡打開同一頁(yè)面或不同頁(yè)面,以下是我的解決方案,Codepublic?class?RefreshServe?:?System.Web.UI.Page????{????????private?static?ILog?log?=?LogManager.GetLogger(typeof(RefreshServe));????????private?read

2、only?string?REFRESH_TICKET_NAME?=?"__RefreshTicketArray";????????private?readonly?string?HIDDEN_FIELD_NAME?=?"__RefreshHiddenField";????????private?readonly?string?HIDDEN_PAGE_GUID?=?"__RefreshPageGuid";????????///?

????????///?為True表示頁(yè)面刷新,False為正常提交????????///?

3、mmary>????????public?bool?IsPageRefreshed????????{????????????get????????????{????????????????if?(IsPostBack?&&?!CheckRefreshFlag())????????????????{????????????????????log.Debug("刷新了頁(yè)面");????????????????????return?true;????????????????}????????????????else????????????????{

4、????????????????????log.Debug("正常提交");????????????????????return?false;????????????????}????????????}????????}????????///?

????????///?呈現(xiàn)前更新標(biāo)識(shí)????????///?????????///?????????protected?override?void?OnPreRender(EventArgs?e)????????{?

5、???????????log.Debug("執(zhí)行OnPreRender");????????????base.OnPreRender(e);????????????UpdateRefreshFlag();????????}????????///?

????????///?更新標(biāo)識(shí),正常提交都刪除該次提交的時(shí)間,并生產(chǎn)當(dāng)前新的時(shí)間????????///?????????private?void?UpdateRefreshFlag()????????{????????????#region?Cookie模式??

6、??????????//注冊(cè)頁(yè)面唯一標(biāo)識(shí)并返回????????????string?pageGuid?=?SetCurPageGuid();????????????HttpCookie?cookie?=?GetRefreshTicket();???????????????????????if?(cookie.Values.Count?>?0)????????????{????????????????cookie.Values.Remove(pageGuid);????????????????log.Debug("當(dāng)前清除的cookie變是:"

7、?+?pageGuid);????????????}????????????string?submitTime?=?DateTime.Now.ToString("hhmmss.fffff");????????????//當(dāng)前提交時(shí)間保存到隱藏域????????????ClientScript.RegisterHiddenField(HIDDEN_FIELD_NAME,?submitTime);????????????log.Debug("即將要新增的時(shí)間:submitTime:"?+?submitTime?+?"??Guid:"?+?page

8、Guid.ToString());????????????cookie.Values.Add(pageGuid,?submitTime);????????????l

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。