質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

Q&A

2回答

3039閲覧

UserAgent以外でクライアント情報(ブラウザかモバイルか)を取得する方法を探しています

退会済みユーザー

退会済みユーザー

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

0グッド

0クリップ

投稿2021/10/14 12:43

お世話になります。

現在ASP.NET(C#)のMVCアプリに外部公開するAPIを追加実装していますが、
そこにアクセスしてきたクライアント情報(ブラウザかモバイルか)を取得する必要が出てきました。

HttpRequest.UserAgentで取得できると思ったのですがこちらの記事にある通り
廃止されてしまったのかChromeからアクセスしてもandroidからアクセスしても固定文字が設定されているだけです。

今回はリクエストを待ち受けるだけのAPIなので
こちらの記事にあるような「User-Agent Client Hints」を利用することも出来ません。

この状況でクライアント情報を取得する方法をご教授ください。
よろしくお願いします。


開発環境は以下になります。
Windows10
Visual Studio(2012)
.NET Framework(Ver4.6.2)


気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/10/15 07:08

質問者さん、その後無言ですか、回答したのでそれに対するフィードバックを書いてください。役に立った/立たなかったぐらいのフィードバックならすぐ返せるのでは? 役に立たなかったならどこがダメだったか書いてもらえるとより期待するものに近い回答が出てくるかも。とにかく無言で放置は NG です。
guest

回答2

0

そこにアクセスしてきたクライアント情報(ブラウザかモバイルか)を取得する必要が出てきました。

サーバサイドに来たヘッダーで判別するのではなく、どのようなレスポンスを希望するかをクライアントから明示的なパラメーターとして送ってもらうという方法ではだめなのでしょうか。

投稿2021/10/14 12:47

編集2021/10/14 12:49
maisumakun

総合スコア145208

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/10/14 14:42

maisumakunさん コメントありがとうございます。 せっかくのアイデアですが実現は出来そうにありません。 今回のクライアントは外部のサービスのため リクエストにパラメーターなどを追加する対応が出来ないのです。 また何か思いつかれたらコメントよろしくお願いします。
guest

0

HttpRequest.UserAgentで取得できると思ったのですがこちらの記事にある通り廃止されてしまったのかChromeからアクセスしてもandroidからアクセスしても固定文字が設定されているだけです。

質問者さんの環境固有の話だと分かりませんが・・・

少なくとも自分の Windows 10 PC の Chrome と Xperia X SO-04H の Chrome でアクセスして ASP.NET の HttpRequest.UserAgent で取得できる User-Agent は違います。区別もつきます。

Windows 10 の Chrome 94.0.4606.81

イメージ説明

Xperia X SO-04H の Chrome

イメージ説明

コードは以下の記事の一番下の方にあるものです。

ClientTarget の利用
http://surferonwww.info/BlogEngine/post/2014/06/14/settings-of-clienttarget-property.aspx

上の画像を表示したページは以下の URL でアクセスできますので自分でも試してみてください。

http://surferonwww.info/Test/0035-HttpBrowserCapabilities.aspx

上の URL は ASP.NET 3.5 のサイトで、HttpBrowserCapabilities の取得結果は ASP.NET 4 以降とは違うと思いますが、HttpRequest.UserAgent での User-Agent 取得結果は同じはずです。

投稿2021/10/15 00:44

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問