Потенциально опасное значение Request.Form обнаружено клиентом

Я запускаю приложение ASP.Net MVC и сталкиваюсь со следующей ошибкой. Поскольку я новичок в ASP.Net, кто-нибудь может мне помочь, что это значит и как я могу решить эту проблему?

Я попытался поискать в Google, чтобы понять это, но нашел разные ответы на одну и ту же ошибку, которая оставила меня в замешательстве.

Exception caught in Global.asax:System.Web.HttpRequestValidationException (0x80004005): A potentially dangerous Request.Form value was detected from the client (ctl00$MainContent$WarningCtl1$TXTWarningText="

This is the warni..."). at System.Web.HttpRequest.ValidateString(String value, String collectionKey, RequestValidationSource requestCollection) at System.Web.HttpRequest.ValidateNameValueCollection(NameValueCollection nvc, RequestValidationSource requestCollection) at System.Web.HttpRequest.get_Form() at System.Web.HttpRequest.get_HasForm() at System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull) at System.Web.UI.Page.DeterminePostBackMode() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) at System.Web.UI.Page.ProcessRequest() at System.Web.UI.Page.ProcessRequest(HttpContext context) at ASP.app_config_appttypes_groupappttypes_aspx.ProcessRequest(HttpContext context) at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

Пожалуйста, предложите.

 tech_human31 мая 2012 г., 20:33
Тем не менее, это не сработало для меня
 Chris31 мая 2012 г., 19:58
Похоже, вы пытаетесь принять HTML-разметку как часть вашего запроса. У вас есть редактор WYSIWYG на странице или что-то?
 Juraj Suchár31 мая 2012 г., 20:24
Вы пытались добавить атрибут[ValidateInput(false)] к вашему классу контроллеров?
 tech_human31 мая 2012 г., 20:33
Я помещаю его в свой файл web.config как & lt; pages theme = & quot; Admin & quot; controlRenderingCompatibilityVersion = & Quot; 4,0 & Quot; ClientIDMode = & Quot; AutoID & Quot; ValidateRequest = & Quot; ложно & Quot; / & GT;

Ответы на вопрос(3)

Вам нужно добавитьValidateInputAttribute к вашему контроллеру (который применяет его ко всем вашим методам действий для этого контроллера, поэтому будьте осторожны):

[ValidateInput (false)]
public class MyController : Controller { ... }

Или ваш метод действий:

public class MyOtherController : Controller
{
    [ValidateInput (false)]
    public ActionResult MyActionMethod (MyObjectThatTakesInHtml myObject)
    { ... }
}

Edit

Как отметил @dotjoe, и я забыл упомянуть, у вас также есть доступ кAllowHtmlAttribute (нашел вSystem.Web.Mvc) на имущество в вашей модели.

public class MyObjectThatTakesInHtml
{
    [AllowHtml]
    public string MyHtmlProperty { get; set; }
}
 31 мая 2012 г., 20:32
не забывайте оAllowHtml атрибут;)
 tech_human31 мая 2012 г., 20:32
Где вы положили allowHtml?
 tech_human31 мая 2012 г., 20:31
Я помещаю это в мой web.config & lt; pages theme = & quot; Admin & quot; controlRenderingCompatibilityVersion = & Quot; 4,0 & Quot; ClientIDMode = & Quot; AutoID & Quot; ValidateRequest = & Quot; ложно & Quot; / & GT;
 31 мая 2012 г., 20:35
@ Dotjoe Doh, забыл об этом. = D Спасибо.
 tech_human31 мая 2012 г., 20:32
Но все же я столкнулся с проблемой после этого ... Работает ли [ValidateInput (false)] иначе, чем validateRequest = & quot; False & quot; в web.config?
Encode at client level and decode it in Server Level

меры

1. Поместите форму, используя метод отправки jquery.

в jquery нажмите кнопку метод события кодировать поле, которое вы хотите опубликовать на сервере. пример

$("#field").val(encodeURIComponent($("#field").val())) $("#formid").submit();

На уровне контроллера получить доступ ко всем значениям идентификатора формы, используя

HttpUtility.UrlDecode(Request["fieldid"])

Убедитесь, что метод контроллера не имеет параметра.

 07 нояб. 2018 г., 13:25
Большие усилия. очень признателен........

MVC

Добавлен атрибут к действию [ValidateInput (ложь)]

and confirm web.config setting in system.web

Ваш ответ на вопрос