nHibernate是否会转义字符串?

时间:2009-04-30 21:33:45

标签: c# nhibernate escaping

从用户报告中,'编辑foo时。 textboxBar允许在保存'

时产生警告.net错误的特殊字符

textboxBar.Text分配给一个对象并使用nHibernate

保存
<property name="TextboxBar" length="255" not-null="false" />

认为它可能是nHibernate而不是转义字符串但无法在文档中找到它。

nHibernate 1.2.0是否自动转义字符串,链接赞赏?

2 个答案:

答案 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();
}