2017-02-05 5 views
1

C#を使用してHTTP Refererからスキーム、ホスト、パス、およびクエリ文字列を抽出するにはどうすればよいですか? 、localhost:5050C#を使用してHTTP Refererからスキーム、ホスト、パス、およびクエリ文字列を抽出する方法ASP.NET#

http://localhost:5050/Blogs/Details/3私は現在、単純なASP.NETコアMVC 6アプリケーションで作業し、HTTPリファラの Context.Request.Headers["Referer"].ToString()【選択値を使用してHTTPリファラーを取得しています

で と私はスキームのhttpを抽出することができますどのように私は思ったんだけどホスト(ポートを含む)の場合は/Blogs/Details/3、パスの場合は/Blogs/Details/3です。

これを行うことができるASP.NET CoreフレームワークまたはC#には何かがありますか?または、HTTP Referer文字列を手動で分離する必要がありますか?

答えて

1

あなたは文字列としてリファラを保存した場合Uri Class

+0

refURL = Context.Request.Headers["Referer"].ToString()

その後

var address = new System.Uri(refURL); var scheme = address.Scheme ; var host = address.Host; 

など

詳細は残念ながら、 '可能System.Uri(refURL)は'ないと言いますASP.NET Coreフレームワークで動作します。私は '非呼び出し可能なメンバ 'を取得しています.Uriはメソッドのように使用できません。私はあなたのソリューションは、ASP.NET 4.5と4.6では動作しますが、コアでは動作しないと思います。 – kimbaudi

+0

あなたは 'UriBuilder(refURL)'を試しました – stackunderflow

+0

あなたは正しいです! 'System.Uri'と' System.UriBuilder'の両方が動作しますが、 'new'キーワード(' var address = new System.Uri(refURL); ')を使用して新しいインスタンスを作成しなければなりませんでした。 – kimbaudi

関連する問題