![](/img/trans.png)
[英]Turn off mvc request logging in asp.net core 2.2 with serilog
[英]I can't turn off Request Validation for an ASP.NET MVC Controller
我試圖通過執行以下操作關閉控制器中所有操作方法的請求驗證:
[ValidateInput(false)]
public class MyController : Controller
{
...
我正在使用的參考說這是可能的,並告訴我這樣做,但由於某種原因,它不起作用。
如果我通過文本框提交任何html(甚至是簡單的<b>標簽),我會收到錯誤消息:
從客戶端檢測到一個潛在危險的Request.Form值(text = <b>“)。
通過將屬性附加到單個方法也無法正常工作。
如何禁用控制器的請求驗證?
我在VS2008內置測試服務器。
我在我的機器上測試了它,在類定義和動作方法上,它在兩種情況下都適用於我。 您確定您的視圖與您的方法/控制器對齊嗎? 您是將該屬性放在GET方法還是POST方法上?
[AcceptVerbs(HttpVerbs.Post)]
[ValidateInput(false)]
public ActionResult MyAction (int id, string content) {
// ...
}
要使其正常工作,您還需要修改web.config:
<system.web>
<httpRuntime requestValidationMode="2.0"/>
...
</system.web>
Pro ASP.NET MVC框架(p466)說以下應該有效:
public class MyController : Controller
{
public MyController() {
ValidateRequest = false;
}
}
你可以發布你的控制器文件和你的視圖文件。
這有效;
MytestController --------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Ajax;
namespace testapp.Controllers
{
[ValidateInput(false)]
public class MyTestController : Controller
{
public ActionResult Index()
{
return View();
}
}
}
MyTest的(指數)---------------------------------------------- ---------
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Index</title>
</head>
<body>
<% using (Html.BeginForm()) { %>
<%= Html.TextBox("test")%>
<button type="submit" >Submit</button>
<%} %>
</body>
</html>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.