2010-09-21 5 views
4

J'ai mis ValidateRequest = "false" dans ma directive de page mais la page agit comme si elle ne revenait pas. Si j'enlève le html alors ça revient bien.Autoriser le html dans les boîtes de texte asp.net

L'utilisation des zones de texte à l'intérieur d'un panneau de mise à jour ne devrait pas faire la différence? J'essaie de stocker du texte dans ma base de données avec la mise en forme html.

Encore une fois, j'utilise un panneau de mise à jour.

+0

Que voulez-vous dire par « ne fonctionne pas »? Vous n'obtenez pas l'exception «cette page peut contenir etc etc» lorsque vous entrez des chevrons dans le champ? – harpo

+0

Je ne reçois aucune erreur, quand je clique sur le bouton de sauvegarde alias post, la page agit comme si je ne l'ai pas cliqué, mais si je supprime les crochets html, il enregistre les données. C'est probablement parce que j'utilise un panneau de mise à jour. –

Répondre

7

Vous obtenez probablement une erreur dans les coulisses. Si vous sortez le panneau de mise à jour, voyez-vous un joli YSOD?

S'il s'agit d'une application .Net 4.0, vous devez modifier la configuration Web afin de permettre l'utilisation de caractères non sécurisés, même si vous avez validé ValidateRequest.

Le changement nécessaire ressemble à ceci: <httpRuntime requestValidationMode="2.0" />

+0

oui j'ai enlevé les panneaux de mise à jour, puis j'ai reçu le ysod. Merci. –

+1

+1. Ceci est un changement diabolique, vous obligeant à vous désinscrire à deux endroits différents, juste pour se débarrasser d'une fonctionnalité totalement erronée, ne peut pas sécuriser une application non sécurisée, et ne donne à une application que déjà une charge de bugs . – bobince

2

Apparemment, vous devez mettre <httpRuntime requestValidationMode="2.0" /> dans web.config pour pouvoir utiliser la fonction ValidateRequest dans la directive page.

Questions connexes