8

ユーザーがブラウザに入力した正確な URL を取得したいと思います。もちろん、私はいつでも次のようなものを使用できますRequest.Url.ToString()が、これは次の状況で私が望むものを与えません:

http://www.mysite.com/rss

上記のURLを使用すると、次のようRequest.Url.ToString()になります。

http://www.mysite.com/rss/Default.aspx

これを達成する方法を知っている人はいますか?

私はすでに試しました:

  • Request.Url
  • Request.RawUrl
  • this.Request.ServerVariables["CACHE_URL"]
  • this.Request.ServerVariables["HTTP_URL"]
  • ((HttpWorkerRequest)((IServiceProvider)HttpContext.Current).GetService(typeof(HttpWorkerRequest))).GetServerVariable( "CACHE_URL")
  • ((HttpWorkerRequest)((IServiceProvider)HttpContext.Current).GetService(typeof(HttpWorkerRequest))).GetServerVariable( "HTTP_URL")
4

6 に答える 6

6

編集:HttpWorkerRequest.GetServerVariable()キーHTTP_URLまたはが必要CACHE_URLです。IIS 5 と IIS 6 では動作が異なることに注意してください (キーのドキュメントを参照してください)。

すべてのサーバー変数にアクセスできるようにするには (取得した場合null)、HttpWorkerRequest に直接アクセスします。

HttpWorkerRequest workerRequest = 
  (HttpWorkerRequest)((IServiceProvider)HttpContext.Current)
  .GetService(typeof(HttpWorkerRequest)); 
于 2009-04-16T19:58:54.330 に答える
4

「ユーザーが入力した正確な URL」がサーバーで利用できない可能性があることにも注意してください。フィンガーからサーバーへのチェーン内の各リンクは、リクエストをわずかに変更できます。

たとえば、ブラウザ ウィンドウに xheo.com と入力すると、IE は自動的にhttp://www.xheo.comに変換されます。次に、要求が IIS に到達すると、ブラウザーに通知されます。実際にはhttp://www.xheo.com/Default.aspxにある既定のページが必要です。そのため、ブラウザはデフォルト ページを要求することで応答します。

HTTP 30x リダイレクト リクエストでも同じことが起こります。サーバーは、ブラウザーによって行われた最終的な要求のみを確認する可能性があります。

于 2009-04-16T20:59:52.640 に答える
3

使ってみてくださいRequest.Url.OriginalString 探しているものが見つかるかもしれません。

于 2009-10-20T05:42:07.057 に答える
1

入力された正確な URL を再構築するために、リクエスト オブジェクトからいくつかの値を組み合わせる必要があるだけです。

Dim pageUrl As String = String.Format("{0}://{1}{2}", 
    Request.Url.Scheme, 
    Request.Url.Host, 
    Request.RawUrl)

Response.Write(pageUrl)

アドレスhttp://yousite.com/?helloを入力すると、次のように正確に返されます。

http://yousite.com/?hello
于 2014-04-29T14:38:15.553 に答える
0

これを行う最も簡単な方法は、クライアント側のプログラミングを使用して正確なURLを抽出することです。

<script language="javascript" type="text/javascript"> 
document.write (document.location.href); 
</script>
于 2011-09-23T05:36:50.297 に答える
0
Request.RawUrl

私はあなたが探している猿だと思います...

于 2009-04-16T20:51:12.083 に答える