从用户报告中,'编辑foo时。 textboxBar允许在保存'
时产生警告.net错误的特殊字符textboxBar.Text分配给一个对象并使用nHibernate
保存<property name="TextboxBar" length="255" not-null="false" />
认为它可能是nHibernate而不是转义字符串但无法在文档中找到它。
nHibernate 1.2.0是否自动转义字符串,链接赞赏?
答案 0 :(得分:1)
我怀疑它甚至需要转义字符串 - 我希望在参数化语句中传递值。
我强烈怀疑这与nHibernate无关 - 我怀疑这只是一个ASP.NET错误,尽管可以肯定它是假设它是一个ASP.NET应用程序。如果是这种情况,您可能只想关闭该页面的验证。
有关详细信息,请参阅ASP.NET FAQ page on validation。
答案 1 :(得分:1)
目前还不完全清楚你的问题是什么情况,或者即使这是ASP.NET,但是用户可能一直在指“从客户端检测到一个潜在危险的Request.Form值...”错误消息ASP.NET生成?
如果是这样,此错误消息与NHibernate无关,但与默认情况下,ASP.NET尝试检测可能是跨站点脚本攻击尝试的危险表单输入有关。
要解决此问题,您需要对所有输出的HTML编码负责。如果您使用的是Web表单,则应将此页面指令添加到页面中...
<%@ Page ValidateRequest="false" ... %>
...然后确保您自己验证输入和/或在稍后将其包含在HTML中时始终对输出进行编码。
如果您使用的是ASP.NET MVC,则可以通过将[ValidateInput]属性添加到控制器操作来执行相同的操作:
[AcceptVerbs(HttpVerbs.Post)]
[ValidateInput(false)]
public ActionResult Edit(...)
{
return View();
}