欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
sql 防注入

ASP.NET網(wǎng)站防止SQL注入攻擊 目的:

•對輸入的字串長(cháng)度,范圍,格式和類(lèi)型進(jìn)行約束.
•在開(kāi)發(fā)ASP.NET程序時(shí)使用請求驗證防止注入攻擊.
•使用ASP.NET驗證控件進(jìn)行輸入驗證.
•對不安全的輸出編碼.
•使用命令參數集模式防止注入攻擊.
•防止錯誤的詳細信息被返回到客戶(hù)端.

  概述 :

  你應該在程序中驗證所有的不信任輸入.你應該假定所有的用戶(hù)輸入都是非法的.用戶(hù)可以在應用程序中提供表單字段,查詢(xún)字串,客戶(hù)端cookies和瀏覽器環(huán)境值比如用戶(hù)代理字串和IP地址等.

  弱輸入校驗通常為注入攻擊提供了機會(huì ).下面是常見(jiàn)的利用弱輸入校驗或無(wú)輸入校驗進(jìn)行攻擊的手段.

•SQL 注入(SQL injection). 如果你使用用戶(hù)的輸入值來(lái)動(dòng)態(tài)構造SQL語(yǔ)句,那么數據庫可能執行攻擊性的有害SQL語(yǔ)句.

•跨站腳本(Cross-site scripting). 跨站腳本攻擊利用網(wǎng)頁(yè)驗證漏洞注入客戶(hù)端腳本.接下來(lái)這些代碼被發(fā)送到受信任的客戶(hù)端電腦上并被瀏覽器解釋執行.因為這些代碼來(lái)自受信任的站點(diǎn),所以瀏覽器無(wú)法得知這些代碼是有害的.

•未授權的文件訪(fǎng)問(wèn)(Unauthorized file access).如果你的代碼從調用者那里接受輸入,惡意用戶(hù)可以看到你對文件的操作過(guò)程從而訪(fǎng)問(wèn)那些受保護的文件或者使用你的代碼注入非法數據.

  注意 : 注入攻擊可通過(guò)使用HTTP或HTTPS Secure Socket Layer(SSL) 連接. 傳輸加密技術(shù)不能用來(lái)防御攻擊.

  通常的輸入驗證方法總結如下.你應在所有的需要通過(guò)網(wǎng)絡(luò )輸入的地方進(jìn)行驗證,比如文本框和其它表單輸入字段, 查詢(xún)字串參數,cookies,服務(wù)器端變量和網(wǎng)絡(luò )方法參數.注意,過(guò)濾策略應該是只允許正確的輸入然后拒絕非法輸入.這是因為定義正確的輸入策略比過(guò)濾所有的非法輸入要容易,那通常很難包括所有的非法輸入.

  通入如下幾個(gè)方面驗證輸入內容:

•約束.驗證是否輸入的是正確的類(lèi)型,字符長(cháng)度,格式和范圍.可以應用ASP.NET驗證控件來(lái)約束服務(wù)器控件輸入.約束其它來(lái)源的輸入可以使用正則表達式和自定義的驗證規則.

•拒絕.檢測已知的有害數據輸入并拒絕.

•過(guò)濾.有時(shí)候你會(huì )希望過(guò)濾掉用戶(hù)輸入中那些有安全隱患的那些部分.例如,你的程序允許自由格式的輸入,比如備注字段,你會(huì )允許特定的安全HTML標記象<b>,<i>及其它的HTML標記.

  步驟提要

  通過(guò)以下步驟保護你的ASP.NET程序不受注入式攻擊危害 :

•第一步.使用ASP.NET請求驗證.
•第二步.約束輸入.
•第三步.對不安全的輸出進(jìn)行編碼.
•第四步.對SQL查詢(xún)語(yǔ)句使用命令參數.
•第五步.驗證ASP.NET的出錯信息沒(méi)有泄漏至客戶(hù)端.

  下面的章節將對這些步驟進(jìn)行詳細討論.

  第一步.使用ASP.NET請求驗證.

  默認地,ASP.NET 1.1和2.0請求驗證會(huì )對送至服務(wù)器的數據檢測是否含有HTML標記元素和保留字符.這可以防止用戶(hù)向程序中輸入腳本.請求驗證會(huì )對照一個(gè)有潛在威脅的字符串列表進(jìn)行匹配,如果發(fā)現異常它會(huì )拋出一個(gè)HttpRequestValidationException類(lèi)型的異常.

  你可以在你的web.config文件中的<pages>元素中加入validateRequest="false" 或在單獨的頁(yè)面的@Pages元素里面設置ValidateRequest = "false"來(lái)禁用此項功能.

  如果你想禁用請求驗證功能,你可以?xún)H在需要的頁(yè)面禁用它.比如你在程序頁(yè)面上包含一個(gè)可接受HTML格式輸入的字段.

  確定在Machine.config文件中請求驗證功能被打開(kāi).
 
  請求驗證功能在A(yíng)SP.NET中被默認啟用.你可以在Machine.config.comments文件中看到如下的默認設置.

<pages validateRequest = "true" ... />

  確認你沒(méi)有修改你的服務(wù)器的Machine.config和應用程序的Web.config文件里的默認設置.

  測試ASP.NET請求驗證

  你可以測試請求驗證的作用.創(chuàng )建一個(gè)ASP.NET頁(yè)面通過(guò)設置ValidateRequest = "fasle"禁用請求驗證,代碼如下 :

<%@ Language="C#" ValidateRequest="false" %>
<html>
<script runat="server">
void btnSubmit_Click(Object sender, EventArgs e)

{

//
If ValidateRequest is false, then 'hello' is displayed

//
If ValidateRequest is true, then ASP.NET returns an exception

Response.Write(txtString.Text);
}
</script>
<body>
<form id="form1" runat="server">
<asp:TextBox id="txtString" runat="server"
Text="<script>alert('hello');</script>" />
<asp:Button id="btnSubmit" runat="server" OnClick="btnSubmit_Click"
Text="Submit" />
</form>
</body>
</html>

  當你運行頁(yè)面的時(shí)候,"Hello"被顯示在一個(gè)消息框中,因為在txtString中的腳本被執行并被客戶(hù)端的瀏覽器處理.

  如果你設置ValidateRequest = "true" 或者移除ValidateRequest頁(yè)面屬性,ASP.NET請求驗證會(huì )拒絕腳本輸入并拋出一個(gè)象下面這樣的錯誤信息.
  A potentially dangerous Request.Form value was detected from the client (txtString="<script>alert('hello").
第二步.約束輸入

  要約束輸入通過(guò)如下方法 :

•使用服務(wù)器端的輸入驗證.不要依賴(lài)于客戶(hù)端的驗證,因為它很容易就被繞過(guò).使用客戶(hù)端驗證是為了減少頁(yè)面返住次數提升性能,改進(jìn)用戶(hù)體驗.
•驗證輸入的長(cháng)度,范圍,格式和類(lèi)型.確保輸入內容是符合要求的正確內容.
•使用強數據類(lèi)型.為數字類(lèi)型的輸入指定如Integer或者Double的類(lèi)型.為字符輸入指定為String數據類(lèi)型.為日期時(shí)間輸入指定DateTime類(lèi)型.

  要驗證表單里面的HTML控件輸入字段,在服務(wù)器端代碼中進(jìn)行驗證,使用Regex正則表達式類(lèi)型可以幫助約束字符輸入.下面的章節介紹如何約束普通輸入類(lèi)型的變量.

  驗證字符串字段

•要驗證字符串字段,如姓名,地址,傳真,生份證號碼,使用正則表達式.
•約束可接受的字符范圍.
•啟動(dòng)格式規則.例如,基于模式的字段如稅號,郵編,郵遞區號需要規定的字符模式.
•驗證長(cháng)度.

  使用正則表達式驗證控件(RegularExpresionValidator)

  要使用則表達式驗證控件需要設置待驗證的控件名(ControlToValidate),驗證表達式(Validation)和出錯提示(ErrorMessage).相關(guān)的屬性設置請看下面的代碼示例.

<form id="WebForm" method="post" runat="server">
<asp:TextBox id="txtName" runat="server"></asp:TextBox>
<asp:RegularValidator id="nameRegex" runat="server"
ControlToValidate="txtName"
Validation="^[a-zA-Z'.\s]{1,40}$"
ErrorMessage="Invalid name">
</asp:regularvalidator>
</form>

  在上面的代碼中,正則表達式被用于限定輸入的名字為字母(允許大寫(xiě)字母和小寫(xiě)字母),空格,單名省略號象O'Dell和句點(diǎn).此外,輸入的字符長(cháng)度被限定在40個(gè)字符.

  注意 正則表達式驗證控件(RegularValidator)會(huì )自動(dòng)加入脫字符(^)和美元符號($)作為開(kāi)始和結束的分隔符.如果你沒(méi)有在自定義的表達式中加入他們那么最好加入.加入分隔符只是為了讓你的表達式得到想要的那部分數據內容.

  使用正則表達式類(lèi)(Regex Class)

  如果你沒(méi)有使用服務(wù)器端的控件(意味著(zhù)你不能使用驗證控件),或者你需要其它的輸入字段源而非表單字段(比如查詢(xún)字串參數和cookies),那么你可以使用正則表達式類(lèi)(Regex class).

  使用正則表達式類(lèi)

•加入使用using前綴的語(yǔ)句導入System.Text.Regulars命名空間.
•確認正則表達式包含"^"和"$"(字串開(kāi)始處,字串結束處).
•調用Regex類(lèi)的IsMatch方法,下面是代碼示例.
//
Instance method:

Regex reg = new Regex(@"^[a-zA-Z'.\s]{1,40}$");
Response.Write(reg.IsMatch(txtName.Text));
//
Static method:

if (!Regex.IsMatch(txtName.Text,@"^[a-zA-Z'.\s]{1,40}$"))


{

//
Name does not match

}

  如果你不能把經(jīng)常使用的正則表達式緩存起來(lái),你應該使用IsMatch靜態(tài)方法來(lái)改進(jìn)性能防止不必要的對象創(chuàng )建過(guò)程.

  驗證數字字段

  在大多數情況下,應該驗證數字的輸入和范圍.使用服務(wù)器控件驗證數字字段的輸入和范圍,使用RangeValidator控件.RangeValidator支持貨幣,日期,整型,雙精度和字符串類(lèi)型的數據.

  使用RangeValidator控件需要設置需要驗證的控件名(ControlToValidate),類(lèi)型(Type),最小值(MinimumValue),最大值(MaximumValue),和出錯提示信息(ErrorMessage)屬性.下面是代碼示例 :

<asp:RangeValidator
ID="RangeValidator1"
Runat="server"
ErrorMessage="Invalid range. Number must be between 0 and 255."
ControlToValidate="rangeInput"
MaximumValue="255"
MinimumValue="0" Type="Integer" />

  如果你沒(méi)使用服務(wù)器控件,你可以將輸入值轉化成整型再進(jìn)行驗證來(lái)完成對數字的范圍驗證.例如,要驗證一個(gè)整數是否合法,使用ASP.NET2.0提供的新方法Int32.TryParse將輸入值轉化為System.Int32的變量類(lèi)型.這個(gè)方法會(huì )在轉換失敗時(shí)返回false.

Int32 i;
if (Int32.TryParse(txtInput.Text, out i) == false)


{

//
Conversion failed

}

  如果你使用早先的ASP.NET版本,可以在try/catch語(yǔ)句塊中 使用Int32.Parse或者Convert.ToInt32方法并可以在轉換失敗時(shí)處理拋出的FormatException錯誤.

  下面的示例代碼演示了如何驗證來(lái)自HTML文本框的整數類(lèi)型的類(lèi)型和范圍.

<%@ Page Language="C#" %>
<script runat="server">
void Page_Load(object sender, EventArgs e)

{
if (Request.RequestType == "POST")

{
int i;
if (Int32.TryParse(Request.F
orm["integerTxt"], out i) == true)

{

//
TryParse returns true if the conversion succeeds

if ((0 <= i && i <= 255) == true)

{
Response.Write("Input data is valid.");
}
else
Response.Write("Input data is out of range");
}
else
Response.Write("Input data is not an integer");
}
}

</script>

<html>
<body>
<form id="form1" action="NumericInput.aspx" method="post">
<div>
Enter an integer between 0 and 255:
<input name="integerTxt" type="text" />
<input name="Submit" type="submit" value="submit" />
</div>
</form>
</body>
</html>
驗證日期字段

  你需要驗證日期字段是否是正確的類(lèi)型.在大多數情況下,你也需要驗證它們的范圍,如驗證它們是否是將來(lái)或是過(guò)去的時(shí)間.如果你使用服務(wù)器控件來(lái)捕獲一個(gè)日期輸入值,同時(shí)你希望這個(gè)值在一個(gè)特定的范圍內,你可以使用范圍驗證控件(RangeValidator)并設置它允許的類(lèi)型為Date類(lèi)型.這個(gè)控件允許你指定一個(gè)特殊的時(shí)間段通過(guò)設置起始的時(shí)刻.如果你需要以今天的時(shí)間作為參照來(lái)驗證,比如驗證一個(gè)時(shí)間是在將來(lái)還是過(guò)去,你可以使用CustomValidator驗證控件。

  使用CustomValidator控件來(lái)驗證一個(gè)日期需要設置ControlToValidate和ErrorMessage屬性,在OnServerValidate事件中指定一個(gè)自定義的驗證邏輯方法.下面是示例代碼.

<%@ Page Language="C#" %>
<script runat="server">
void ValidateDateInFuture(object source, ServerValidateEventArgs args)

{
DateTime dt;


//
Check for valid date and that the date is in the future

if ((DateTime.TryParse(args.Value, out dt) == false) ||
(dt <= DateTime.Today))

{
args.IsValid = false;
}
}

</script>

<html>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" Runat="server"
Text="Future Date:"></asp:Label>
<asp:TextBox ID="futureDatetxt" Runat="server"></asp:TextBox>
<asp:CustomValidator
ID="CustomValidator1" Runat="server"
ErrorMessage="Invalid date. Enter a date in the future."
ControlToValidate="futureDatetxt"
OnServerValidate="ValidateDateInFuture">
</asp:CustomValidator>
<br />
<asp:Button ID="submitBtn" Runat="server" Text="Submit" />
</div>
</form>
</body>
</html>

  注意 上面的代碼使用的方法DateTime.TryParse是ASP.NET2.0提供的新方法.

  過(guò)濾自由文本字段

  過(guò)濾輸入,你需要使不安全的輸入不被當作代碼來(lái)對待.例如,你的程序使用戶(hù)不能讀取共享數據庫內的數據,你首先需要過(guò)濾數據使它們在輸出的時(shí)候沒(méi)有危險.使用HttpUtility.HtmlEncode方法先對輸入值進(jìn)行編碼.

  允許有限的輸入HTML代碼


•在@ Page頁(yè)面元素內加以下字段ValidateRequest = "false"禁用ASP.NET請求驗證
•使用HtmlEncode方法對輸入的字符串進(jìn)行編碼
•使用StringBuilder對象,調用它的Replace方法對字符中的HTML進(jìn)行替換
  下面的代碼給出了這種辦法的示例.此頁(yè)面設置ValidateRequest = "fasle"禁用了ASP.NET請求驗證.它的HTML編碼為了顯示簡(jiǎn)單的文本格式允許使用<b>和<i>標記.

<%@ Page Language="C#" ValidateRequest="false"%>
<script runat="server">
void submitBtn_Click(object sender, EventArgs e)

{

//
Encode the string input

StringBuilder sb = new StringBuilder(
HttpUtility.HtmlEncode(htmlInputTxt.Text));

//
Selectively allow and <i>

sb.Replace("<b>", "<b>");
sb.Replace("</b>", "");
sb.Replace("<i>", "<i>");
sb.Replace("</i>", "");
Response.Write(sb.ToString());
}
</script>
<html>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="htmlInputTxt" Runat="server"
TextMode="MultiLine" Width="318px"
Height="168px"></asp:TextBox>
<asp:Button ID="submitBtn" Runat="server"
Text="Submit" OnClick="submitBtn_Click" />
</div>
</form>
</body>
</html>

  驗證查詢(xún)字串的值

  驗證查詢(xún)字串的長(cháng)度,范圍,格式和類(lèi)型.通常,你使用一個(gè)合并的正則表達式來(lái)完成以下任務(wù):

•約束輸入值
•設置明確的范圍檢查條件
•指定輸入的類(lèi)型并將它轉換成ASP.NET平臺下的類(lèi)型,處理任何由類(lèi)型轉換引發(fā)的異常下面的代碼示例演示了使用Regex類(lèi)驗證由查詢(xún)字串傳遞過(guò)來(lái)的名字字符串

void Page_Load(object sender, EventArgs e)


{
if (!System.Text.Regulars.Regex.IsMatch(
Request.QueryString["Name"], @"^[a-zA-Z'.\s]{1,40}$"))
Response.Write("Invalid name parameter");
else
Response.Write("Name is " + Request.QueryString["Name"]);
}

  驗證Cookie值

  象查詢(xún)字串這樣被保存在Cookie里面的值很容易被用戶(hù)修改.同樣地驗證這些值的長(cháng)度,范圍,格式和類(lèi)型.
驗證文件和URL地址

  如果你的程序允許輸入文件名,文件地址或者文件存放路徑,你需要驗證它們的格式是否正確并且根據你的程序實(shí)際情況它指向一個(gè)有效的位置.如果此步驗證失敗,你的程序可能會(huì )被錯誤地要求訪(fǎng)問(wèn)文件.

  驗證文件路徑

  為了避免你的程序被用戶(hù)利用來(lái)訪(fǎng)問(wèn)文件,防止接受用戶(hù)編寫(xiě)代碼輸入的文件或者文件路徑.例如 :

•如果你接受輸入文件名,使用System.IO.Path.GetFileName方法來(lái)取得文件的全稱(chēng)
•如果你不得不接受輸入文件路徑,使用System.IO.Path.GetFullPath來(lái)取得完整的文件路徑

  使用MapPath方法防止跨應用程序的映射

  如果你使用MapPath方法在服務(wù)器上映射一個(gè)提供的虛擬目錄到一個(gè)物理目錄,使用Request.MapPath方法的一個(gè)帶bool參數的重載版本來(lái)防止跨應用程序的映射.下面是此項技術(shù)的示例代碼 :

try


{
string mappedPath = Request.MapPath( inputPath.Text,
Request.ApplicationPath, false);
}
catch (HttpException)


{

//
Cross-application mapping attempted

}

  最終的false參數將會(huì )防止跨應用程序的映射.這意味著(zhù)用戶(hù)不允許使用".."這樣的語(yǔ)法提供一個(gè)不在你所指定的虛擬目錄里面的非法路徑.

  如果你使用服務(wù)器控件,你可以使用Control.MapPathSecure方法獲取虛擬目錄對應的實(shí)際目錄地址.

  Control.MapPathSecure方法在訪(fǎng)問(wèn)一個(gè)非授權的文件時(shí)拋出一個(gè)HttpException的異常.需要更多信息,請參看.NET Framework文檔中的Control.MapPathSecure方法介紹.

  使用代碼訪(fǎng)問(wèn)安全機制限制文件輸入輸出

  管理員可以通過(guò)設置程序使它的可信度為"中"來(lái)限制程序向它所在的虛擬目錄讀寫(xiě)文件的能力..NET代碼安全機制可以保證程序在它所在的虛擬目錄之外沒(méi)有任何的文件訪(fǎng)問(wèn)權利.

  要設置一個(gè)應用程序的信任度為"中",可以在Web.config或者M(jìn)achine.config文件中加入:

<trust level = "Medium" />

  驗證URL

  你可以用象下面的這樣的正則表達式來(lái)對URL進(jìn)行特征匹配.

^(?:http|https|ftp)://[a-zA-Z0-9\.\-]+(?:\:\d{1,5})?(?:[A-Za-z0-9\.\;\:\@\&\=\+\$\,\?/]|%u[0-9A-Fa-f]{4}|%[0-9A-Fa-f]{2})*$

  這只是約束輸入的格式,不驗證它是否在應用程序可接受的范圍內.你應該驗證它是否在你的程序的上下文中有效.例如,您的應用程序是否跟你指定的服務(wù)器進(jìn)行通訊?

  第三步.對不安全代碼進(jìn)行編碼

  如果您輸入文本輸入到一個(gè)網(wǎng)頁(yè),使用HttpUtility.HtmlEncode方法對它進(jìn)行編碼.如果這些文來(lái)自于用戶(hù)輸入,數據庫或者一個(gè)本地文件,請確??偸沁@樣做.

  同樣地,如果您書(shū)寫(xiě)的URL里面包含不安全的字符因為他們來(lái)自于用戶(hù)輸入內容,數據庫等,使用HttpUtility.UrlEncode方法進(jìn)行編碼.

  為了防止存儲數據前編碼可能會(huì )使存儲的數據受到破壞,請確保在將它們顯示出來(lái)時(shí)盡可能后面的步驟將它們編碼.

  使用HtmlEncode對不安全的輸出編碼

  HtmlEncode對HTML標記置換成特殊含文的字符串來(lái)表示這些符號而又讓瀏覽器不把它們當作HTML標記來(lái)解釋處理.比如."<"被置換成< " (冒號) 被替換成" 這些標記被顯示成無(wú)害的文本.

<%@ Page Language="C#" ValidateRequest="false" %>

<script runat="server">
void submitBtn_Click(object sender, EventArgs e)
{
Response.Write(HttpUtility.HtmlEncode(inputTxt.Text));
}
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="inputTxt" Runat="server"
TextMode="MultiLine" Width="382px" Height="152px">
</asp:TextBox>
<asp:Button ID="submitBtn" Runat="server" Text="Submit"
OnClick="submitBtn_Click" />
</div>
</form>
</body>
</html>

  查看HTML編碼的效果,請建立一個(gè)虛擬目錄將前述的文件放進(jìn)去,運行此頁(yè)面,在文本框中輸入一些HTML代碼,點(diǎn)擊提交按鈕.例如,下面的輸入被當作普通文本來(lái)顯示.

Run script and say hello <script>alert('hello');</script>

  如果你移除調用HtmlEncode方法,簡(jiǎn)單地輸入文本的內容,瀏覽器會(huì )執行代碼并彈出一個(gè)提示框.

  使用UrlEncode 方法對不安全的URL地址進(jìn)行編碼

  如果你需要獲取有用戶(hù)輸入部分的URL參數,這可能帶來(lái)一定的安全風(fēng)險,使用HttpUtility.UrlEncode方法對這個(gè)地址字符串編碼.

HttpUtility.UrlEncode(urlString);

  第四步.對SQL語(yǔ)句使用命令參數方式.

  為了避免注入式攻擊請使用SQL的參數方式.參數(Parameters)集合提供類(lèi)型檢測和長(cháng)度檢測.如果你使用參數集合,輸入的內容將被當作文本值來(lái)對待,數據庫不會(huì )執行包含在其中的代碼.使用參數集方式的一個(gè)額外的好處是,你可以嚴格限定輸入的類(lèi)型和長(cháng)度.如果輸入型超出范圍將會(huì )觸發(fā)異常.

  當調用一個(gè)存儲過(guò)程時(shí)使用參數集

  下面的代碼片段演示了在調用存儲過(guò)程時(shí)使用參數集的例子.

SqlDataAdapter myCommand = new SqlDataAdapter("AuthorLogin",
myConnection);
myCommand.SelectCommand.CommandType = CommandType.StoredProcedure;
SqlParameter parm = myCommand.SelectCommand.Parameters.Add(
"@LoginId", SqlDbType.VarChar, 11);
parm.Value = Login.Text;

  在創(chuàng )建你自己的SQL語(yǔ)句時(shí)使用參數集.

  如果你不能使用存儲過(guò)程,你仍然可以使用參數集,請看下面的代碼.

SqlDataAdapter myCommand = new SqlDataAdapter(
"Select au_lname, au_fname FROM Authors Where au_id = @au_id", myConnection);
SQLParameter parm = myCommand.SelectCommand.Parameters.Add(
"@au_id" ,SqlDbType.VarChar, 11);
Parm.Value = Login.Text;

第五步.驗證ASP.NET的錯誤信息沒(méi)有被返回到客戶(hù)端

  你可以使用<customErrors>元素來(lái)配置客戶(hù)端,一般的錯誤信息應該被程序錯誤檢測機制返回到客戶(hù)端.

  請確認已經(jīng)更改web.config中的mode屬性為"remoteOnly",下面是示例.

<customErrors mode = "remoteOnly">

  安在裝了一個(gè)ASP.NET 的程序之后,你可以按照如下設定指定客戶(hù)端的錯誤信息頁(yè)面。

<customErrors mode = "on" defaultRedirect = "YourErrorPage.htm">


本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
ASP.NET驗證控件客戶(hù)端驗證成功或失敗之后執行js腳本(原創(chuàng ))
[jQuery]使用jQuery.Validate進(jìn)行客戶(hù)端驗證(初級篇)——不使用微軟驗...
ASP.NET六種驗證控件
ASP.NET驗證控件[轉]
ASP.NET編程中的十大技巧
最新技術(shù): ASP.NET 頁(yè)的客戶(hù)端
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久