質問: 現在下記2つのアプリケーションを作成しています。 1.Webアプリケーション 2.Windowsフォームアプリケーション 2のフォームアプリケーションは1のWebアプリケーションをForm上で表示するためのアプリです(.netのWebBrowserで1を表示しています)。 1のWebアプリケーションは2のフォームでの表示と、通常のブラウザ(IEやChrome)での表示も行います。 そこで、一部機能を2のフォームアプリケーションからのみ制御可能にしたいのですが、可能でしょうか? 例)リンククリック時に2のアプリ上からだと遷移するが、 IEやChromeからクリックした場合遷移せずにアラートを表示する等 宜しくお願い致します。
回答: あらゆる通信は模倣することが可能なため、ブラウザーを判別し「完全に切り分け」ることは不可能です。何らかの妥協が必要です。 エラー抑止程度が目的で厳密性を求める理由がよくわかりませんでした。 WebBrowserコントロールのUser-Agentに独自のキーワードを組み込んでおき、Webサーバー側は独自のキーワードがあればリンクを開き、なければ警告する、他のブラウザーがUser-Agentを模倣した場合は誤判定するがその点は気にしない、程度の実装が浮かびました。もちろん誤判定があるため完全ではありません。