web-dev-qa-db-ja.com

ASP.NETでHTTPリファラーを取得する

私は、ブラウザのHTTP Referrer in ASP.NetC#)を取得する、迅速で簡単で信頼性の高い方法を探しています。 HTTPリファラー自体が信頼できないことは知っていますが、isが存在する場合、リファラーを取得する信頼できる方法が必要です。

97
Chuck Le Butt

現在のリクエストの rlReferrer プロパティを使用できます。

Request.UrlReferrer

これは、リクエストから Referer HTTPヘッダーを読み取ります。このヘッダーは、クライアント(ユーザーエージェント)によって提供される場合と提供されない場合があります。

161
Darin Dimitrov

Request.UrlReferrerプロパティを使用します。

シーンの下では、ServerVariables("HTTP_REFERER")プロパティをチェックしています。

19
Dismissile
Request.Headers["Referer"]

説明

リファラーHTTPヘッダーの形式が正しくない場合(通常は制御されていないために発生する可能性があります)、Request.UrlRefererSystem.UriFormatExceptionをスローします。

Request.ServerVariablesの使用に関しては、MSDNに従って:

Request.ServerVariablesコレクション

ServerVariablesコレクションは、事前定義された環境変数とリクエストヘッダー情報の値を取得します。

Request.Headersプロパティ

HTTPヘッダーのコレクションを取得します。

Request.Headersはすべての環境変数とヘッダーを含むため、Request.ServerVariablesRequest.ServerVariablesよりも適切な選択です。ここで、Request.Headersはヘッダーのみを含むはるかに短いリストです。

したがって、最善の解決策は、Request.Headersコレクションを使用して値を直接読み取ることです。ただし、フォームに値を表示する場合は、値のHTMLエンコードに関するMicrosoftの警告に注意してください。

16
NightOwl888

このように: HttpRequest.UrlReferrer Property

Uri myReferrer = Request.UrlReferrer;
string actual = myReferrer.ToString();
12
Tom

私は.Net Core 2 mvcを使用していますが、これは私のために機能します(プレビューページを取得するため):

HttpContext.Request.Headers["Referer"];
8
Saad Hasan
string referrer = HttpContext.Current.Request.UrlReferrer.ToString();
1
Donat Sasin

いつか、このようなすべてのリンクを提供する必要があります

System.Web.HttpContext.Current.Request.UrlReferrer.ToString();

(「現在」が設定されていない場合のオプション)

1
Sportac

他の返信に属し、nullを取得するための条件句を追加しました。

string ComingUrl = "";
if (Request.UrlReferrer != null)
{
    ComingUrl = System.Web.HttpContext.Current.Request.UrlReferrer.ToString();
}
else
{
    ComingUrl = "Direct"; // Your code
}
0
HQtunes.epizy