危険な可能性のある Request.Form 値 エラー
【環境】
windows 2003 + IIS
ASP.NET
VB.NET
【エラー内容】
事象としては フォーム入力をした際にうまくページ遷移せずエラーとなる
エラー内容を確認すると
危険な可能性のある Request.Form 値がクライアント ("●●●") から検出されました。
Source:System.Web
Stack: at System.Web.HttpRequest.ValidateString(String s, String valueName, String collectionName)
at System.Web.HttpRequest.ValidateNameValueCollection(NameValueCollection nvc, String collectionName)
at System.Web.HttpRequest.get_Form()
at System.Web.UI.Page.GetCollectionBasedOnMethod()
at System.Web.UI.Page.DeterminePostBackMode()
at System.Web.UI.Page.ProcessRequestMain()
とでている
【内容・推測】
.net の仕様でセキュリティチェックがされる
デフォルトでチェックされるようになっている
【対応】
C:\WINDOWS\Microsoft.NET\Framework\V999999\CONFIG\machine.config
の ValidateRequest の値がデフォルトで true になっているので falseにする(validateRequest="false")
か
ASPXの最初の行の <@ Page >タグ内に記述する
記述例(最後の ValidateRequest="False" ):
<%@ Page CodeBehind="XXXXXX.vb" Language="vb" AutoEventWireup="false" Inherits="XXXX.YYYY" trace="False" ValidateRequest="False" %>
注意:999999は.netのバージョン