Mil*_*rov 3 servicestack asp.net-mvc-4
我正在提交一个包含值 Body=%3Ch2%3E (Body=<h1>)
到servicestack rest端点的查询字符串
.这导致:
从客户端检测到潜在危险的Request.QueryString值(Body = \"<h2> \").
我知道在MVC 4中你可以允许特定字段的Html内容,如果你使用[AllowHtml]装饰模型中的字段,如下所示:
[AllowHtml] public string Body {get; 组; }
那样做了,但错误仍然存在.有人怀疑服务堆栈是否在验证过程中没有正确参与,因此通过创建具有相同模型的纯MVC 4控制器进行测试,并且工作正常.
但是我需要ServiceStack的解决方案.他们的文档很薄,谷歌搜索无处可寻.
看起来您正在ASP.NET应用程序中托管ServiceStack服务.
您可以将以下内容添加到<system.web>web.config文件的部分,以禁用整个应用程序的请求验证:
<system.web>
<httpRuntime requestValidationMode="2.0" />
...
</system.web>
Run Code Online (Sandbox Code Playgroud)
如果您只想为特定端点禁用请求验证,而不是整个应用程序使用<location>web.config中的标记:
<location path="hello">
<system.web>
<httpRuntime requestValidationMode="2.0" />
</system.web>
</location>
Run Code Online (Sandbox Code Playgroud)
这将禁用/hello应用程序中所有端点的请求验证.例如,/hello?Body=%3Ch2%3E工作但/bar?Body=%3Ch2%3E不起作用.
您可以在ASP.NET中阅读有关ASP.NET中的请求验证的更多信息following MSDN article.
显然,如果您自行托管ServiceStack服务,则不应该担心这一点.