2012-02-02 5 views
5

私たちは、ユーザーが物を検索できるようにするためのテキストボックスをsitecoreに持っています。これは、サーバーに戻ってきて、検索して結果を返します(画面に表示します)。Request Validation - SiteCoreでどのように、なぜそれが無効になっていますか?

ドギーを入力すると、私は、that has been default behaviour since v1.1 of ASP.NETそれを理解したよう

A potentially dangerous Request.QueryString value was detected from the client (q="<img src="http://www..."). 

:いくつかのマークアップは私の線に沿って、.NET例外を受け取ることを期待します。そして、v4.0では、デフォルトのWebページだけでなく、they just extended it to all requestsのままでした。

次のようにそこで質問です:

1. how have sitecore disabled this? 
2. what can I do to re-enable this globally (i.e. not on a per page basis)? 

私はこのように始まりweb.configファイルのセクションがあります注:あなた自身の質問に答え

<!-- Continue to run Sitecore without script validations --> 
<pages validateRequest="false" controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"> 
+0

私はあなたの答えはここにあると思う:1 [[http://stackoverflow.com/questions/2673850/validaterequest-false-doesnt-work-in-asp-net-4][1] ]:http://stackoverflow.com/questions/2673850/validaterequest-false-doesnt-work-in-asp-net-4 –

+0

あなたは本当ですか?私はそれを無効にしようとしていないので、私はデフォルトの動作を取り戻そうとしています。また、C:¥WINDOWS¥Microsoft.NET¥Framework¥v4.0.30319¥ASP.NETWebAdminFiles¥web.config 行18: これは、ウェブサイトのweb.configで指定しない場合のデフォルト値。 – chrislewisdev

+0

私がよく理解していれば、.NET 4はその動作を変更しました。はい、私はあなたがv4の上に構築していると仮定しました。したがって、これにより、v4はv2と同じようにv2のように動作するはずです。: 'です。次に、asp.net 2.0/3.5で使用したのと同じ方法で設定することができます。 –

答えて

5

が。ここでご質問です:サイトコアで

  1. がデフォルトweb.configをすることができます、またtrue

に設定し、これをオンにする <pages validateRequest="false" ... />

  • としてこのセットが付属していますthis blog postを見てください。これは、PreprocessRequestパイプラインのSuppressFormValidationプロセッサがこの問題を引き起こしている可能性があることを示しています。ブログの記事は、あなたが唯一のサイトコアシェル(バックエンドGUI)での検証を抑制するために置き換えることができ、新たなコードを持っている

    namespace Sitecore.Pipelines.PreprocessRequest 
    { 
        public class SuppressFormValidation : PreprocessRequestProcessor 
        { 
         public override void Process(PreprocessRequestArgs args) 
         { 
          Assert.ArgumentNotNull(args, "args"); 
          try 
          { 
           NameValueCollection form = args.Context.Request.Form; 
          } 
          catch (HttpRequestValidationException exception) 
          { 
           if (!args.Context.Request.RawUrl.StartsWith("/sitecore/shell/", StringComparison.InvariantCultureIgnoreCase)) 
           { 
            Log.Error(exception.Message, exception, this); 
           } 
          } 
         } 
        } 
    } 
    

    は、ここで同定された「問題」のコードです。

  • +0

    これは効果がありません。私はそれをsitecoreのサポートに上げます。 – chrislewisdev

    +0

    私はあなたに役立つ何かで私の答えを編集しました。 –

    +0

    それは正解と思われます。私はそのパイプラインのステップを取り出し、それは正常に動作します。SiteCoreの担当者がコンテンツエディタを完全に取り除くと、コンテンツエディタが破損する可能性があることをアドバイスしているので、その人が行ったように再度有効にしてみます:http://sdn.sitecore.net/Scrapbook/Configuring%20pages%20web,-d - 、config%20section.aspx – chrislewisdev

    関連する問題