Отключение проверки запросов ASP.NET (только для одной страницы) в проекте .NET 3.5, размещенном на IIS 7.5 с установленным только .NET 4.0 - PullRequest
1 голос
/ 06 мая 2011

У меня проблема с проверкой запросов в веб-формах ASP.NET, и я уверен, что это связано с размещением проекта .NET 3.5 на IIS 7.5 (Windows 7 - локальная машина разработки).

По сути, я получаю постбэк с внешнего сайта (который полностью вне моего контроля) и получаю следующее исключение:

A potentially dangerous Request.QueryString value was detected from the client (DATA="<IDP MSGTYPE="Authen...").

У меня есть этот набор в объявлении страницы:

<%@ page language="C#" autoeventwireup="true" inherits="postexternal" enableviewstate="false" masterpagefile="~/SiteBase/transactional.master" Codebehind="postexternal.aspx.cs" validaterequest="false" %>

(и, кроме того, я также попытался отключить его в web.config / page - безрезультатно.

Я думаю, что это может быть связано с критическими изменениями, внесенными (как говорят MS) в ASP.NET 4.0, как описано здесь: http://www.asp.net/learn/whitepapers/aspnet4/breaking-changes#0.1__Toc256770147

Но если я добавлю эту конфигурацию в свой web.config, я получу ошибку конфигурации (поскольку она выполняется в пуле приложений .NET 2.0).

Каким бы образом я ни выглядел, я застрял на данный момент, поэтому был бы признателен за любые советы / рекомендации людей. Можно ли как-нибудь обойти это каким-либо другим способом?). Я мог бы попытаться установить .NET 2.0, но я не уверен, что это даже сработает (и кажется довольно хрупким методом).

Спасибо.

Ответы [ 2 ]

4 голосов
/ 05 ноября 2011

У меня тоже была эта проблема, и добавление ее в web.config решило проблему.

<httpRuntime requestPathInvalidCharacters="" />

По умолчанию .Net 4.0 отклоняет все запросы с <> *% &: \? персонажи, которые могут вызывать проблему для вас, как это было для меня.

[ConfigurationProperty("requestPathInvalidCharacters", DefaultValue=@"<,>,*,%,&,:,\,?")]
public string RequestPathInvalidCharacters { get; set; }
0 голосов
/ 26 ноября 2015

Вы можете найти решение на этой странице: https://msdn.microsoft.com/en-us/library/hh882339.aspx

или просто обновите файл web.config после тега system.web следующим образом:

</system.web>
<location path="MyPage.aspx">
    <system.web>
        <pages validateRequest="false" />
        <httpRuntime requestValidationMode="2.0" />
    </system.web>
</location> 
...