C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 177 を表示中)
■101770 / )  Re[2]: HTTP_USER_AGENTによる使用OS判定について
□投稿者/ のんちゃん (2回)-(2023/04/17(Mon) 14:07:45)
魔界の仮面弁士さま

回答頂きありがとうございます。
紹介いただいたページ等、内容を見させていただきましたが、
埋め込み方が分からず申し訳ありません。
担当者が急遽退職してしまい、代わりに見ているのですがなかなか難しく・・・
以下処理を Sub OsInfo()内に記述するとエラーとなってしまいます。

/*
const uaInfo = await navigator.userAgentData.getHighEntropyValues(["platformVersion"]);
console.log(uaInfo);
*/

navigator.userAgentData.getHighEntropyValues(["platformVersion"]).then(ua =>
{
 if (navigator.userAgentData.platform === "Windows") {
  console.log(ua.platformVersion);
 }
});


■No101765 (魔界の仮面弁士 さん) に返信
> 2023/04/17(Mon) 12:48:19 編集(投稿者)
> 
> ■No101764 (のんちゃん さん) に返信
>>windows11と10では同じバージョン(10.0)と判定されてしまい困っております。
>>11を判定するにはどうしたらよいかご存じの方いらっしゃいましたら宜しくお願い致します。
> 
> 機密情報が含まれないようにするため、User-Agent の情報量は削減されています。
> クライアント OS を判断する試みは行わないよう、運用を見直された方が良いでしょう。
> https://developer.chrome.com/ja/docs/privacy-sandbox/user-agent/
> 
> 現時点で取得するとなると、experimental (実験的) な API 頼りになりそう。
> 
> 
>>sUA = Request.ServerVariables("HTTP_USER_AGENT")
> USER-AGENT ヘッダーでは区別できないので、
> User-Agent クライアント ヒント (UA-CH) API を用いて
> SEC-CH-UA-PLATFORM と
> SEC-CH-UA-PLATFORM-VERSION で判断します。(FireFox は対象外)
> 
> 
> /*
> const uaInfo = await navigator.userAgentData.getHighEntropyValues(["platformVersion"]);
> console.log(uaInfo);
> */
> 
> navigator.userAgentData.getHighEntropyValues(["platformVersion"]).then(ua =>
> {
>  if (navigator.userAgentData.platform === "Windows") {
>   console.log(ua.platformVersion);
>  }
> });
> 
> https://developer.mozilla.org/ja/docs/Web/API/NavigatorUAData/getHighEntropyValues
> https://learn.microsoft.com/ja-jp/microsoft-edge/web-platform/how-to-detect-win11
> 
> 
> 事前に Accept-CH 要求の応答ヘッダーを付与しておくことで
> それ以降の通信に対して User Agent Client Hints(Sec-Ch-Ua) を
> サーバーへ送信させてサーバーサイド判定が可能となりますが、
> この機構は http では利用できないため、
> https 通信であることが前提になります。
> https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-UA-Platform-Version
> https://http2.try-and-test.net/client_hints.html

返信 編集キー/


管理者用

- Child Tree -