유효성 검사 이유입력(거짓)이 작동하지 않습니까?
저는 웹 양식을 사용하여 만든 애플리케이션을 vb.net 을 사용하여 asp.net mvc 프레임워크로 변환하고 있습니다.저는 제 견해 중 하나에 문제가 있습니다.죽음의 노란 화면에 "잠재적으로 위험한 요청"이라는 메시지가 나타납니다.양식을 제출할 때 양식 값이 클라이언트에서 탐지되었습니다."저는 작은 쥐를 RTE로 사용하고 있습니다.나는 그 전망 자체를 설정했습니다.
ValidateRequest="false"
제가 지금까지 읽은 것으로 볼 때 MVC에서는 그것을 존중하지 않는다는 것을 알고 있습니다.그래서 컨트롤러 동작에도 적용했습니다.여러 가지 설정을 시도해 보았습니다.
<ValidateInput(False), AcceptVerbs(HttpVerbs.Post)> _
...그리고...
<AcceptVerbs(HttpVerbs.Post), ValidateInput(False)> _
...그리고 이것 또한...
<ValidateInput(False)> _
<AcceptVerbs(HttpVerbs.Post)> _
그게 변화를 줬는지 보려고요 하지만 전 여전히 죽음의 노란 화면을 받고 있어요이 보기 및 내 게시물과 관련된 컨트롤러의 특정 작업에 대해서만 설정하려고 합니다.내가 뭘 빼놓았나요?
asp.net 4에서는 web.config에서도 유효성 검사 모드를 구성해야 합니다.
다음을 의 자식으로 설정합니다.<system.web>요소:
<system.Web>
...
<httpRuntime requestValidationMode="2.0"/>
As.Net 4는 requestValidationMode를 다음으로 설정합니다.4.0기본적으로 HTTP 요청의 BeginRequest 단계 전에 요청 유효성 검사를 수행하도록 시스템에 알려줍니다.시스템이 요청의 유효성을 검사하지 말라는 작업 특성에 도달하기 전에 유효성 검사가 수행되므로 특성이 사용되지 않습니다.requestValidationMode="2.0"을 설정하면 asp.net 2.0 요청 유효성 검사 동작으로 되돌아가므로ValidateInput예상대로 작동하는 속성입니다.
게시할 컨트롤러 작업이 특성이 있는 작업입니까?
HttpContext와 같은 필드에 액세스할 수 있습니다.부탁한다.유효성 확인 안 됨.양식["필드 이름"]
IModelBinder 인터페이스를 구현하는 고유한 모델 바인더를 사용할 때, 이러한 사용자 정의 모델 바인더는 속성에 관계없이 항상 데이터의 유효성을 검사합니다.몇 줄의 코드를 추가하여 사용자 정의 모델 바인더가 검증을 준수하도록 할 수 있습니다.작업의 입력 필터:
// First check if request validation is required
var shouldPerformRequestValidation = controllerContext.Controller.ValidateRequest && bindingContext.ModelMetadata.RequestValidationEnabled;
// Get value
var valueProviderResult = bindingContext.GetValueFromValueProvider(shouldPerformRequestValidation);
if (valueProviderResult != null)
{
var theValue = valueProviderResult.AttemptedValue;
// etc...
}
이것은 Martjn Boland에 의해 매우 잘 설명되어 있습니다: http://blogs.taiga.nl/martijn/2011/09/29/custom-model-binders-and-request-validation/
이러한 제안은 [검증]을 사용해야 할 때 발생하는 버그로 인해 발생하는 문제를 해결하지 못합니다.양식 컬렉션과 함께 입력(거짓).
참조: ASP.NET MVC 3 FormCollection에서 ValidateRequest(false)가 작동하지 않습니다.
다음 코드 행을 추가합니다.
GlobalFilters.Filters.Add(new ValidateInputAttribute(false));
Application_Start() 메서드로 이동합니다.헤헤 좋아요
입력 모델을 사용하고 원하는 속성에 AllowHtml을 사용하면 차단이 해제됩니다.
public class InputModel
{
[AllowHtml]
public string HtmlInput { get; set; }
}
...
[ValidateInput(false)]
public async Task<ActionResult> ControllerMethod(InputModel model)
{
}
언급URL : https://stackoverflow.com/questions/807662/why-is-validateinputfalse-not-working
'programing' 카테고리의 다른 글
| Nodejs의 절대 경로에서 파일 이름을 가져오시겠습니까? (0) | 2023.05.10 |
|---|---|
| VBA에서 사용자 지정 데이터 유형 사용 (0) | 2023.05.10 |
| ID 일회용 인터페이스의 올바른 사용 (0) | 2023.05.10 |
| 게시물:하나의 열에 대해서만 구별됨 (0) | 2023.05.10 |
| PowerShell에서 "&&" 또는 "-and" 작업을 수행할 수 있습니까? (0) | 2023.05.05 |