Frage

Von einem Anwenderbericht ‚, bei der Bearbeitung von foo. textboxBar erlaubt Sonderzeichen, die eine Warnung .net Fehler erzeugen beim Speichern ‚

textboxBar.Text wird zu einem Objekt zuweisen und gespeichert unter Verwendung nHibernate

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

Denken kann es sein, nHibernate keine Strings zu entkommen, aber kann es nicht in der Dokumentation finden.

Does nHibernate 1.2.0 automatisch Strings entkommen, Link geschätzt?

War es hilfreich?

Lösung

Ich bezweifle, dass es braucht, um auch Strings zu entkommen -. Ich würde erwarten, dass Werte in parametrisierte Aussagen weitergegeben werden

ich stark vermuten, dass dies nichts mit nHibernate zu tun hat - ich vermute, dies ist nur ein ASP.NET-Fehler ist, obwohl zugegebenermaßen das ist vorausgesetzt, dass es eine ASP.NET-Anwendung. Wenn dies der Fall ist, werden Sie wahrscheinlich nur wollen Validierung für diese Seite deaktivieren.

Sehen Sie die ASP.NET FAQ-Seite zur Validierung für weitere Details .

Andere Tipps

Es ist nicht ganz klar, was die Situation aus Ihrer Frage ist, oder auch wenn dies ASP.NET, aber könnte der Benutzer bezogen hat auf den „A potenziell gefährlichen Request.Form-Wert wurde von dem Client erkannt ...“ Fehlermeldung dass ASP.NET erzeugt?

Wenn ja, wird diese Fehlermeldung nicht auf NHibernate verwendet, aber ist darauf zurückzuführen, dass in der Standardeinstellung ASP.NET versucht gefährliche Formulareingaben zu erkennen, die ein Cross-Site-Scripting Angriff Versuch sein könnten.

Um dies zu beheben, müssen Sie die Verantwortung für HTML nehmen alle Ihre Ausgaben codieren. Wenn Sie Web-Formulare verwenden, sollten Sie diese Seite Direktive zu Ihrer Seite hinzufügen ...

<%@ Page ValidateRequest="false" ... %>

... und dann stellen Sie sicher, dass Sie die Eingabe selbst und / oder sind darauf bedacht, zu validieren Ausgabe immer codieren, wenn Sie es in HTML enthalten später.

Wenn Sie ASP.NET MVC verwenden, können Sie das gleiche tun, indem das Hinzufügen von [ValidateInput] Attribute zu Ihrer Controller-Aktion:

[AcceptVerbs(HttpVerbs.Post)]
[ValidateInput(false)]
public ActionResult Edit(...)
{
   return View();
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top