1

ASP.NET Webフォームでの要求の検証に問題があり、IIS 7.5(Windows 7-ローカル開発マシン)で.NET3.5プロジェクトをホストしていることがかなり確実です。

基本的に、外部サイト(完全に自分の制御の及ばない)からポストバックを受け取り、次の例外を受け取ります。

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でもオフにしようとしました-無駄になりました。

これは、ここで説明されているように、ASP.NET 4.0で行われた重大な変更に関係している可能性があると思います: http ://www.asp.net/learn/whitepapers/aspnet4/breaking-changes#0.1__Toc256770147

しかし、その構成をweb.configに追加すると、構成エラーが発生します(.NET 2.0アプリケーションプールで実行されているため)。

どちらの見方をしても、現時点では行き詰まっているので、アドバイスやアドバイスをいただければ幸いです。とにかく私はこれを他の方法で回避することができますか?).NET 2.0のインストールを試みることはできますが、それがうまくいくかどうかはわかりません(そして、試すのはかなり壊れやすい方法のようです)。

ありがとう。

4

2 に答える 2

4

私にもこの問題があり、これをweb.configに追加すると問題が解決しました。

<httpRuntime requestPathInvalidCharacters="" />

デフォルトでは、.Net4.0は<>*%&:\?を含むすべてのリクエストを拒否します。私のようにあなたに問題を引き起こしているかもしれないキャラクター。

[ConfigurationProperty("requestPathInvalidCharacters", DefaultValue=@"<,>,*,%,&,:,\,?")]
public string RequestPathInvalidCharacters { get; set; }
于 2011-11-05T00:46:20.967 に答える
0

解決策はtihsページで見つけることができます: https ://msdn.microsoft.com/en-us/library/hh882339.aspx

または、system.webタグの後にweb.configファイルを次のように更新します。

</system.web>
<location path="MyPage.aspx">
    <system.web>
        <pages validateRequest="false" />
        <httpRuntime requestValidationMode="2.0" />
    </system.web>
</location> 
于 2015-11-26T14:58:03.850 に答える