ValidateRequest= "false" nie działa w Asp.Net 4
Mam formularz, w którym używam ckeditor. Ta forma sprawdziła się dobrze w Asp.Net 2.0 i 3.5 ale teraz nie działa w Asp.Net 4+. Mam dyrektywę ValidateRequest= "false". Jakieś sugestie?
5 answers
Znaleziono rozwiązanie na samej stronie błędu. Wystarczy dodać requestValidationMode= " 2.0 " W web.config
<system.web>
<compilation debug="true" targetFramework="4.0" />
<httpRuntime requestValidationMode="2.0" />
</system.web>
Informacja MSDN: HttpRuntimeSection.Właściwość RequestValidationMode
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-09-13 15:41:06
Istnieje sposób na przywrócenie walidacji do wersji 2.0 dla jednej strony. Wystarczy dodać poniższy kod do swojej sieci.config:
<configuration>
<location path="XX/YY">
<system.web>
<httpRuntime requestValidationMode="2.0" />
</system.web>
</location>
...
the rest of your configuration
...
</configuration>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-27 08:44:58
Wiem, że to stare pytanie, ale jeśli napotkasz ten problem w MVC 3, możesz udekorować ActionMethod
za pomocą [ValidateInput(false)]
i po prostu wyłączyć walidację żądania dla pojedynczego ActionMethod
, co jest przydatne. Nie musisz wprowadzać żadnych zmian w pliku web.config
, więc nadal możesz używać walidacji żądania. NET 4 wszędzie indziej.
Np.
[ValidateInput(false)]
public ActionMethod Edit(int id, string value)
{
// Do your own checking of value since it could contain XSS stuff!
return View();
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-13 16:24:19
Działa to bez zmiany trybu walidacji.
Musisz użyć System.Web.Helpers.Validation.Unvalidated
helpera z System.Web.WebPages.dll
. Zwróci obiekt UnvalidatedRequestValues
, który umożliwia dostęp do formularza i zapytania bez walidacji.
Na przykład,
var queryValue = Server.UrlDecode(Request.Unvalidated("MyQueryKey"));
Działa dla MVC3 i. Net 4.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-03 15:00:50
Zauważ, że innym podejściem jest zachowanie walidacji 4.0, ale zdefiniowanie własnej klasy, która wywodzi się z RequestValidator
I set:
<httpRuntime requestValidationType="YourNamespace.YourValidator" />
(Gdzie YourNamespace.YourValidator
jest dobrze, powinieneś być w stanie zgadnąć...)
W ten sposób zachowujesz zalety zachowania 4.0 s (W szczególności, że Walidacja odbywa się wcześniej w przetwarzaniu), jednocześnie zezwalając na żądania, które musisz przepuścić, przepuścić.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-03 14:52:20