ValidateRequest问题

2022-09-06 15:24:35 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

1,在出现该错误的页面头部的page中加入ValidateRequest=”false”,那么该页面的任何一次Post提交都不会再验证提交内容的安全性。 如:

<%@ Page Title=”” Language=”C#” MasterPageFile=”~/Views/Manage/ViewMasterPageEdit.Master” Inherits=”System.Web.Mvc.ViewPage<MvcWebPhoto.Models.Entities.Article >”

ValidateRequest=”false” % >

2,在web.config中的pages节中配置validateRequest=”false”,如:

<system.web > <pages validateRequest=”false” ></pages > </system.web >

但这样,整个项目中的所有Form请求都不再验证提交内容的安全性,极不提倡这种做法。

3,如果你使用的是.Net 3.5,MVC 2.0及更高的版本,那么可以在处理Post方法的Action添加一个特性:[ValidateInput(false)],这样处理就更加有针对性,提高页面的安全性。 如:

[HttpPost] [ValidateInput(false)] public ActionResult CatalogEdit(Catalog model) { return View(); }

重要: 如果你使用的是MVC 3.0,那么你会发现做了以上的设置后还是无效。这是因为你还需要在web.config中做以下设置:

<system.web > <httpRuntime requestValidationMode=”2.0″ / > </system.web >

注意:在MVC项目中,Views文件夹下与主项目下,都会有一个web.config文件。Views下的web.config文件只对Views文件夹下面的文件有效。如果你要处理的页面不在Views下面,那么<httpRuntime requestValidationMode=”2.0″ / >一定要设置在主项目下的web.config中才有用。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/155179.html原文链接:https://javaforall.cn

0 人点赞