ValidateRequest=»false» не работает, даже с requestValidationMode =»2.0″

#asp.net #azure #wif

#asp.net #azure #с помощью

Вопрос:

У меня есть ASP.NET Веб-сайт работает в Visual Studio dev-fabric (azure project), и я использую ACS и WIF. Мой процесс аутентификации не работает, потому что после входа в систему я получаю это:

 A potentially dangerous Request.Form value was detected from the client (wresult="<t:RequestSecurityTo..."). 
  

В документации указано, что мне нужно добавить

 <pages validateRequest="false" />
  

и

 <httpRuntime requestValidationMode="2.0" />
  

И я сделал — но я все еще получаю ошибку. Я также добавил ValidateRequest =»false» на уровне страницы. Но нада — все равно получаю ту же ошибку.

Эти шаги, похоже, устранили проблему для других плакатов — возможно, это как-то связано с запуском в dev-fabric?

Комментарии:

1. Вы размещаете на странице за пределами приложения?

2. почему бы вам вместо этого не использовать requestsValidationType ? nuget.org/List/Packages/SyntaxC4.WindowsAzure . ACSManagement.Mvc

Ответ №1:

Я не понял, но я случайно добавил эти настройки в тег местоположения, созданный WIF:

   <location path="FederationMetadata">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
      <!-- wrong! -->
    </system.web>
  </location>
  <system.web>
      <!-- right! -->
    <httpRuntime requestValidationMode="2.0" />
    <pages validateRequest="false" />
  

Комментарии:

1. Если бы у меня был никель каждый раз, когда это происходило… В любом случае, вот полезная ссылка: social.technet.microsoft.com/wiki/contents/articles /… , также вы можете принять свой собственный ответ.