C#でMicrosoft.Graphを利用してOneDriveのファイル操作を行うモジュールを作成しているのですが、プロキシ認証が必要な場合について教えてください。

Tanaka Hiroshi (田中 寛志) 40 評価のポイント
2024-09-18T06:17:48.14+00:00

以下のようにしてシステムの設定からプロキシ設定を取得し、プロキシを経由してOneDriveの操作を行っています。

NetworkCredentialにデタラメなユーザー名とパスワードを設定してもOneDriveにアクセスできてしまっています。

以下について教えてください。

  1. WebRequest.GetSystemWebProxy()はどこにあるプロキシ設定を取得していますか?
  2. システム設定とユーザーが設定したプロキシ設定に違いはありますか?
  3. 作成したモジュールをSYSTEM権限(ユーザ権限でない)で実行した場合、問題なくプロキシ設定を取得できますか?
  4. ユーザーが設定したプロキシ設定利用する場合、取得方法をご教示ください。
  5. システム設定とユーザーが設定したプロキシ設定に違いはありますか?
        // システムのプロキシ情報を取得
        IWebProxy webProxy = WebRequest.GetSystemWebProxy();
        // 認証情報を設定
        webProxy.Credentials = new NetworkCredential("", "");
        // クライアントを作成
        HttpClient httpClient = GraphClientFactory.Create(proxy: webProxy);
        var graphClient = new GraphServiceClient(httpClient, clientSecretCredential, scopes);
C#
C#
C 言語ファミリをルーツとし、コンポーネント指向プログラミングのサポートを含む、オブジェクト指向およびタイプセーフのプログラミング言語。
32 件の質問
0 件のコメント コメントはありません
{count} 件の投票

承認済みの回答
  1. Hebikuzure aka Murachi Akira 9,791 評価のポイント MVP
    2024-09-19T11:45:48.4433333+00:00

    WebRequest.GetSystemWebProxy() は WinInet のプロキシ設定(= Internet Explorer の「インターネット option」のプロキシ設定)を読み取ります。

    WinInet のプロキシ設定はレジストリの以下の場所に記録されます。

    HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings

    HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Connections

    レジストリのハイブを見て分かるように、これは「システム プロキシ」と言ってもユーザー単位の構成です。

    1 人がこの回答が役に立ったと思いました。
    0 件のコメント コメントはありません

0 件の追加の回答

並べ替え方法: 最も役に立つ

お客様の回答

回答は、質問作成者が [承諾された回答] としてマークできます。これは、ユーザーが回答が作成者の問題を解決したことを知るのに役立ちます。