国产九色porn网址_亚洲综合伊人_91麻豆精品视频_免费吸乳羞羞网站视频

您好,微網(wǎng)歡迎您! 登錄  |  注冊
汕頭公司 |  深圳公司              咨詢熱線:400-830-8248               微網(wǎng)優(yōu)點  |  視頻介紹 |  服務(wù)支持
開店咨詢
咨詢電話:400-830-8248
微網(wǎng)商學(xué)院
中國第一微商學(xué)院
網(wǎng)絡(luò)商學(xué)院
首頁 > 微信商城
騰訊是如何培養(yǎng)人才的?這里有份萬字詳解
文章出處:http://www.yixieshi.com/82964.html  更新時間:2017-05-15  點擊率:
騰訊是如何培養(yǎng)人才的?這里有份萬字詳解-互聯(lián)網(wǎng)的一些事

導(dǎo)讀:在.Net4中有個System.Web.Util.RequestValidator類,該類是自定義請求驗證的基類。我們可以通過實現(xiàn)一個繼承自該基類的類,從而實現(xiàn)自己的請求驗證過程,比如對提交的表單數(shù)據(jù),查詢字符串等等進(jìn)行驗證。

1. 請求驗證什么?

首先,請看下圖:

上圖中,是我們常見一個ASP.Net錯誤提示.由于ASP.Net默認(rèn)情況是把請求驗證(validateRequest)設(shè)置是為true,從而使得ASP.Net會對提交的信息進(jìn)行檢查,這在一定程度上有效的阻止了某些危險攻擊,比如:跨站腳本攻擊(XSS/CSS)。

但是,也存在以下問題:

有時候,我們允許用戶輸入某些特殊時,如果按照請求驗證(validateRequest)默認(rèn)設(shè)置true,那么當(dāng)用戶輸入我們允許的特殊字符時,就會出現(xiàn)如上圖所示的錯誤提示,阻止了用戶輸入.此時,我們必須將請求驗證設(shè)置為false,才能允許用戶輸入特殊字符?墒,一旦把請求驗證設(shè)置為false,那么ASP.Net就不會對請求驗證了,這樣其潛在危險就超過了我們的控制范圍.

雖然,我們可以在某些頁面做特殊處理,以便阻止這些潛在的危險.可以,隨著項目擴大,也許要處理的頁面就會增長.顯然,我們需要靈活、方便、更好的方式進(jìn)行處理.那么現(xiàn)在在ASP.NET4就為我們提供了一個可以集中處理的自定義擴展點。

2.RequestValidator

在.Net4中有個System.Web.Util.RequestValidator類,該類是自定義請求驗證的基類.我們可以通過實現(xiàn)一個繼承自該基類的類,從而實現(xiàn)自己的請求驗證過程.

目前,可以驗證的請求由枚舉類RequestValidatorSource提供,可枚舉項具體如下:

1. QueryString 查詢字符串。

IsValidRequestString方法的collectionKey參數(shù)設(shè)置為集合中查詢字符串參數(shù)的名稱。

IsValidRequestString方法的value參數(shù)設(shè)置為集合中查詢字符串參數(shù)的值。

2. Form窗體值

IsValidRequestString方法的collectionKey參數(shù)設(shè)置為集合中窗體參數(shù)的名稱。

IsValidRequestString方法的value參數(shù)設(shè)置為集合中窗體參數(shù)的值。

3. Cookies請求Cookie。

IsValidRequestString方法的collectionKey參數(shù)設(shè)置為集合中的Cookie的名稱。

IsValidRequestString方法的value參數(shù)設(shè)置為集合中的值。

4.Files上載的文件。

IsValidRequestString方法的collectionKey參數(shù)設(shè)置為集合中已上載文件的名稱。

IsValidRequestString方法的value參數(shù)設(shè)置為集合中已上載文件的值。

5. RawUrl原始URL。(域后的URL部分。)

IsValidRequestString方法的collectionKey參數(shù)設(shè)置為null。(RawUrl不是值集合。)

IsValidRequestString方法的value參數(shù)設(shè)置為RawUrl字段的值。

6. Path虛擬路徑。

IsValidRequestString方法的 collectionKey參數(shù)設(shè)置為null(Path不是值的集合)。

IsValidRequestString方法的value參數(shù)設(shè)置為Path字段的值。

7. PathInfo HTTP PathInfo字符串(URL路徑的擴展)。

IsValidRequestString方法的collectionKey參數(shù)設(shè)置為null(PathInfo不是值的集合)。

IsValidRequestString方法的value參數(shù)設(shè)置為PathInfo字段的值。

8.Headers請求標(biāo)頭。

IsValidRequestString方法的collectionKey參數(shù)設(shè)置為集合中HTTP頭的名稱。

IsValidRequestString方法的value參數(shù)設(shè)置為集合中HTTP頭的值。

通過以上這些枚舉我們基本上就能對常見提交的數(shù)據(jù)進(jìn)行統(tǒng)一請求驗證處理,比如:忽略某些特殊的數(shù)據(jù)或者處理某些特殊的數(shù)據(jù)或者提供一個友好的錯誤頁面等。

3.實現(xiàn)自定義請求驗證

下面演示如何實現(xiàn)一個自定義驗證類,對每個查詢字符串驗證.步驟如下:

1.繼承RequestValidator類,只需要重寫IsValidRequestString方法,如下:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.Util;

namespace WebApplication1

{

public class myRequestValidator:RequestValidator

{

protected override bool IsValidRequestString(HttpContext context, string value, RequestValidationSource requestValidationSource, string collectionKey, out int validationFailureIndex)

{

validationFailureIndex = -1;

if (requestValidationSource == RequestValidationSource.QueryString) //對查詢字符串進(jìn)行驗證

{

if (value.Contains("<"))//檢查是否包含<,當(dāng)然也可以檢查其他特殊符號,或者忽略某些特殊符號.

{

context.Response.Redirect("~/Error.aspx",true);//直接轉(zhuǎn)到自定義的錯誤頁面.

return false;

}

}

return base.IsValidRequestString(context, value, requestValidationSource, collectionKey, out validationFailureIndex);

}

}

2.在web.config中設(shè)置請求驗證類型為自定義的類型.如下: <configuration>

<system.web>

<compilation debug="true" targetFramework="4.0" />

<httpRuntime requestValidationType="WebApplication1.myRequestValidator" />

</system.web>

</configuration> 

現(xiàn)在,我們通過修改url來提交帶<特殊符號的頁面時,將會被定向到自定義的錯誤頁面,而不是默認(rèn)錯誤提示.如下:

如下圖所示,并沒有出現(xiàn)默認(rèn)的錯誤提示,而是到了我們自己提供一個錯誤頁面

最后,ASP.Net4為我們提供很多擴展點,可以很方便進(jìn)行擴展,使得我們的應(yīng)用程序更加靈活可控

文章轉(zhuǎn)載于:http://www.yixieshi.com/82964.html

聲明:本網(wǎng)部份文章為轉(zhuǎn)載文章,在每篇文章底部有說明,文章的觀點和立場僅代表作者個人立場,不代表微網(wǎng)立場,若是文章轉(zhuǎn)載中有侵范您的權(quán)益,請發(fā)郵件到 493149@qq.com或致電13922854199通知刪除,謝謝!

QQ咨詢  技術(shù)總監(jiān)  微網(wǎng)顧問  陳經(jīng)理  渠道經(jīng)理  

免費電話 免費熱線:400-830-8248  

微信咨詢  

注冊開店

代理加盟

返回頂部