0

私のasp.net mvcアプリでは、特定のURLが有効な応答を返すかどうかを確認したいと考えています. そのため、HttpWebRequest.GetResponse() をテストするメソッドに URL を送信します。

私の開発サーバー (vs2008) では問題なく動作します。ただし、本番サーバーにデプロイすると、Bad Request が返されます。メソッドがヒットすることはなく、asp.net カスタム エラー ページは使用されません。

何か案は?

4

2 に答える 2

1

今後これを読む人のために: http:// の部分を削除し、HttpUtility.UrlPathEncode を使用してパスをエンコードし、最後の部分を {*uri} とするルートを設定しました。これにより、パラメーターで / を使用できるようになります。

次に、checkUri に http:// を追加して uri を再作成し、この uri のホストが想定したホスト (私の例では request.url.host) であるかどうかを確認します。

次に、作成した Uri を使用して httpwebrequest を作成し、リクエストの応答を確認します。

于 2008-10-16T08:39:52.707 に答える
0

おそらく、ASP.NETのValidateRequest機能を実行していませんか? 問題のページでこれを無効にするには、aspx ファイルの最初の行を変更して ValidateRequest="false" パラメーターを指定します。

例:

<%@ Page Language="C#" CodeFile="Default.aspx.cs" Inherits="_Default" ValidateRequest="false" %>

ただし、リクエストの検証は XSS 攻撃を防ぐのに役立つため、おそらくその状態のままにしたくないでしょう。まだ使用していない場合は、HttpUtility.UrlEncode を使用することも試してみる価値があります。

于 2008-10-15T09:18:26.777 に答える