От клиента было обнаружено потенциально опасное значение Request.Form (wresult = " - PullRequest
16 голосов
/ 30 сентября 2011

Я также получаю ошибку проверки запроса при использовании WIF. Меня правильно отправили в STS, но на обратном пути я получил эту ошибку проверки.

Я следовал всем инструкциям.

<httpRuntime  requestValidationMode="2.0" />

проверка!

    [ValidateInput(false)]

проверка!

<pages validateRequest="false" >

проверка!

Я пробовал собственный валидатор, но он никогда не создается.

стек ошибок:

[HttpRequestValidationException (0x80004005): A potentially dangerous Request.Form value was detected from the client (wresult="trust:RequestSecuri...").]
   System.Web.HttpRequest.ValidateString(String value, String collectionKey, RequestValidationSource requestCollection) +11396740
   System.Web.HttpRequest.ValidateNameValueCollection(NameValueCollection nvc, RequestValidationSource requestCollection) +82
   System.Web.HttpRequest.get_Form() +212
   Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.IsSignInResponse(HttpRequest request) +26
   Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.CanReadSignInResponse(HttpRequest request, Boolean onPage) +145
   Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.OnAuthenticateRequest(Object sender, EventArgs args) +108
   System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +80
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +270

Есть предложения?

Ответы [ 4 ]

26 голосов
/ 30 сентября 2011
<httpRuntime requestValidationMode="2.0"/>

после этого добавить

<configuration>
    <system.web>
        <pages validateRequest="false" />
    </system.web>
</configuration>

также в mvc3 есть атрибут AllowHtml

[AllowHtml]
public string Property{ get; set; }

вот несколько полезных ссылок

ASP.NET MVC - страницы validateRequest = false не работает?

Почему ValidateInput (False) не работает?

3 голосов
/ 20 марта 2014

См. этот ответ , если вы используете .NET 4.5, который использует обновленный валидатор запросов, встроенный в ASP.NET.

0 голосов
/ 11 июня 2012

В MVC 3 (не уверен насчет 2) вы можете добавить глобальный фильтр в global.asax.cs, например.

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
    filters.Add(new ValidateInputAttribute(false));
}

То, что в сочетании со следующим должно разрешить все данные и отображать их правильно и безопасно, я думаю:

<httpRuntime encoderType="Microsoft.Security.Application.AntiXssEncoder, AntiXssLibrary"/>

в web.config и использование (примечание двоеточие):

<%: Model.Something %>

или в бритве:

@Model.Something

и в некоторых случаях в Javascript:

@Html.Raw(Ajax.JavaScriptStringEncode(Model.Something))
0 голосов
/ 02 октября 2011

Вы можете поместить обе конструкции в раздел system.web согласно ASP.NET: потенциально опасное значение Request.Form было обнаружено клиентом .

Обратите внимание, что этостандартная функциональность ASP.NET.Не подключен к WIF.

...