System.Net クラスは、基本的なインターネット認証方法、ダイジェスト認証、ネゴシエート認証、NTLM 認証、Kerberos 認証、カスタムメソッドなど、さまざまなクライアント認証メカニズムをサポートしています。
認証資格情報は、NetworkCredential インターフェイスを実装するCredentialCacheクラスとICredentials クラスに格納されます。 これらのクラスのいずれかが資格情報を照会されると、 NetworkCredential クラスのインスタンスが返されます。 認証プロセスは AuthenticationManager クラスによって管理され、実際の認証プロセスは、 IAuthenticationModule インターフェイスを実装する認証モジュール クラスによって実行されます。 カスタム認証モジュールを使用する前に、 AuthenticationManager に登録する必要があります。基本、ダイジェスト、ネゴシエート、NTLM、および Kerberos 認証方法のモジュールは、既定で登録されます。
NetworkCredential は、URI によって識別される 1 つのインターネット リソースに関連付けられた資格情報のセットを格納し、 GetCredential メソッドの呼び出しに応答して返します。 通常、NetworkCredential クラスは、限られた数のインターネット リソースにアクセスするアプリケーション、またはすべてのケースで同じ資格情報のセットを使用するアプリケーションによって使用されます。
CredentialCache クラスは、さまざまな Web リソースの資格情報のコレクションを格納します。 GetCredential メソッドが呼び出されると、CredentialCache は、Web リソースの URI と要求された認証スキームによって決定される適切な資格情報のセットを返します。 さまざまな認証スキームを持つさまざまなインターネット リソースを使用するアプリケーションでは、 CredentialCache クラスを使用するとメリットがあります。これは、すべての資格情報が格納され、要求に応じて提供されるためです。
インターネット リソースが認証を要求すると、 WebRequest.GetResponse メソッドは資格情報の要求と共に WebRequest を AuthenticationManager に送信します。 要求は、次のプロセスに従って認証されます。
AuthenticationManager は、登録された各認証モジュールのAuthenticateメソッドを、登録された順序で呼び出します。 AuthenticationManager は、認証プロセスを実行するために null を返さない最初のモジュールを使用します。 プロセスの詳細は、関係する認証モジュールの種類によって異なります。
認証プロセスが完了すると、認証モジュールは、インターネット リソースへのアクセスに必要な情報を含むAuthorizationを WebRequest に返します。
一部の認証スキームでは、最初にリソースの要求を行わずにユーザーを認証できます。 アプリケーションは、リソースを使用してユーザーを事前認証することで時間を節約できるため、サーバーへのラウンド トリップが少なくとも 1 回はなくなります。 または、後でユーザーに対する応答性を高めるために、プログラムの起動時に認証を実行できます。 事前認証を使用できる認証スキームでは、 PreAuthenticate プロパティを true に設定 します。
こちらも参照ください
.NET