validateRequest="false" 不起作用,即使设置了 requestValidationMode="2.0"。

6
我有一个在Visual Studio dev-fabric(Azure项目)中运行的ASP.NET网站,并且正在使用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中运行的原因吗?


你是否正在发布到应用程序外的页面? - James Johnson
为什么不使用requestsValidationType呢?http://nuget.org/List/Packages/SyntaxC4.WindowsAzure.ACSManagement.Mvc - cory-fowler
1个回答

6

我之前没有意识到,但我不小心在WIF创建的位置标记中添加了这些设置:

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

如果我每次遇到这种情况都有一枚五分镍币...无论如何,这里有一个有用的链接:http://social.technet.microsoft.com/wiki/contents/articles/windows-identity-foundation-wif-a-potentially-dangerous-request-form-value-was-detected-from-the-client-wresult-quot-lt-t-requestsecurityto-quot.aspx,此外你也可以接受自己的答案。 - Gary.S

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接