2012-08-30 8 views
0

프레임 워크 4.0을 사용하여 MVC asp.net 응용 프로그램을 상속했습니다. 내가 무서워지고있어<validateRequest = "false"/> 및 <httpRuntime requestValidationMode = "2.0"/> 작동하지 않음

"잠재적 위험으로 Request.Form 값은 클라이언트에서 감지되었습니다"오류 내 모든 연구는이이 문제를 해결해야한다고 생각하는 날 리드 :

<system.web> 
    <httpRuntime requestValidationMode="2.0" /> 
    <pages validateRequest="false" /> 
</system.web> 

을 그러나, 나는 ' 그게 내 web.config에 추가하고 여전히 오류가 발생했습니다. 나는 내 밧줄 끝에있다. 나는 무엇을 놓치고 있는가?

답변

1

.

[ValidateInput(false)] 
public ActionResult MyActionMethod(string myParameter) 
{ 
    // Method implementation goes here... 
} 

당신이 당신의 자신의 요청 유효성 검사기를 구현하고 전체 사이트에 대한 유효성 검사를 처리하는 경우의 Web.config에 그 바인딩 할 수 있습니다, 다른 생각이있다. 완전히 구현하는 방법은 this blog post을보십시오.

기본적으로 RequestValidator에서 상속받은 클래스를 만든 다음 web.config에 연결합니다.

<httpRuntime requestValidationType=”Globals.CustomRequestValidation”/> 

이 정보가 도움이되기를 바랍니다.

0

다른 접근 방법을 취하십시오. httpRuntime에서 사용자 지정 유효성 검사 클래스를 가리 킵니다. 이 방법은 처리 파이프 라인의 시작 부분에서 각 단일 요청에 따라 유효성 검사기가 시작될 때 들어오는 요청을 완벽하게 제어 할 수 있습니다.

특히, 유효성 검사기를 구현하여 true을 반환하면 모든 수신 요청을 무조건 받아들입니다. 당신은 또한 ValidateInput 속성을 가진 당신의 방법을 장식 할 필요가 무슨 짓을했는지에 추가

http://msdn.microsoft.com/en-us/library/system.web.util.requestvalidator.aspx

0

가장 간단한 방법은 원하는 문자를 유효성 검사 시스템에서 제거하는 것입니다.

여기에는 httpRuntime elementrequestPathInvalidCharacters 속성이 기본값으로 사용됩니다.

<httpRuntime requestPathInvalidCharacters="&lt;,&gt;,*,%,&amp;,:,\" /> 
<!-- the unescaped characters are: < > * % & : \ --> 

승인하려는 문자를 제거하면 요청이 작동합니다.