Has*_*anG 154 asp.net asp.net-4.0 validate-request
我有一个表格,我使用ckeditor.这种形式在Asp.Net 2.0和3.5上运行良好,但现在它在Asp.Net 4+中不起作用.我有ValidateRequest ="false"指令.有什么建议?
Has*_*anG 192
在错误页面找到解决方案.只需要添加requestValidationMode ="2.0"
<system.web>
<compilation debug="true" targetFramework="4.0" />
<httpRuntime requestValidationMode="2.0" />
</system.web>
Run Code Online (Sandbox Code Playgroud)
MSDN信息:HttpRuntimeSection.RequestValidationMode属性
Ben*_*man 100
有一种方法可以将验证恢复为一页的2.0.只需将以下代码添加到您的web.config:
<configuration>
<location path="XX/YY">
<system.web>
<httpRuntime requestValidationMode="2.0" />
</system.web>
</location>
...
the rest of your configuration
...
</configuration>
Run Code Online (Sandbox Code Playgroud)
Tom*_*ler 56
我知道这是一个老问题,但如果你在MVC 3中遇到这个问题,那么你可以装饰你ActionMethod
的[ValidateInput(false)]
,只需关闭一个单一的请求验证ActionMethod
,这很方便.而且您不需要对web.config
文件进行任何更改,因此您仍然可以在其他任何位置使用.NET 4请求验证.
例如
[ValidateInput(false)]
public ActionMethod Edit(int id, string value)
{
// Do your own checking of value since it could contain XSS stuff!
return View();
}
Run Code Online (Sandbox Code Playgroud)
Ass*_*sin 28
这不会改变验证模式.
你必须使用一个System.Web.Helpers.Validation.Unvalidated
帮手System.Web.WebPages.dll
.它将返回一个UnvalidatedRequestValues
允许访问表单和QueryString而无需验证的对象.
例如,
var queryValue = Server.UrlDecode(Request.Unvalidated("MyQueryKey"));
Run Code Online (Sandbox Code Playgroud)
适用于MVC3和.NET 4.
Jon*_*nna 15
请注意,另一种方法是保持4.0验证行为,但要定义自己派生的类RequestValidator
并设置:
<httpRuntime requestValidationType="YourNamespace.YourValidator" />
Run Code Online (Sandbox Code Playgroud)
(哪里YourNamespace.YourValidator
好,你应该猜到......)
这样,您可以保持4.0s行为的优势(特别是,验证在处理中更早发生),同时还允许您需要通过的请求.
归档时间: |
|
查看次数: |
140035 次 |
最近记录: |