ASP.NetでQueryStringパラメータが不明瞭に失われています。私は(私のブラウザのアドレスバーから貼り付け)以下のようなURLがあります。ASP.Netでクエリ文字列パラメータが認識されない
//Short example
http://localhost/AllAboutThatWeb/SPARQL?partialResults=True&query=SELECT%20*%20WHERE%20{%3Fs%20%3Fp%20%3Fo}&timeout=1000
//Long example
http://localhost/AllAboutThatWeb/SPARQL?query=PREFIX%20rdf%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%3E%0D%0APREFIX%20rdfs%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0D%0APREFIX%20xsd%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchema%23%3E%0D%0APREFIX%20aat%3A%20%3Chttp%3A%2F%2Fwww.dotnetrdf.org%2FAllAboutThat%2F%3E%0D%0ASELECT%20*%20WHERE%20{%3Fs%20%3Fp%20%3Fo}&timeout=1000&partialResults=True
をしかし、私はアプリケーションをデバッグする場合partialResultsパラメータが常に不足して行く、私はRequest.QueryString.AllKeys配列も含まれていないことが判明します「partialResults」キーには、「クエリ」キーと「タイムアウト」キーが含まれています。これは引数の順序にかかわらず発生し、引数を異なる順序で配置すると、partialResultsパラメータが消えます。
URLはアプリケーション内のASP.Net汎用ハンドラ用で、アプリケーション内の別のページによって生成され、URLエンコードを使用して各パラメータのデータ値をエンコードしてから、Response.Redirectを使用してハンドラに要求を渡します。 。
パラメータが欠落している理由についてのアイデアはありますか?
これは実際にはRDFのクエリ言語であるSPARQLであり、SQLがSQLのインジェクション攻撃となるような形でデータを変更することはできません。 〜へ第2段落 – RobV
ああ大丈夫、私は参照してください。 – Blixt
私はこの問題を解決するための答えとしてこれを受け入れています。上記のURLはアプリケーションのURLで処理されていましたが、IHttpModuleとそのフォームのURLは書き換えられました。汎用ハンドラの実際のURLだから、私が追加した他のパラメータとその名前に関係なく、 – RobV