RFC2617拡張機能を使用するWebサーバーと通信するコードを実装しています。 これを実現するために、IAuthenticationManagerモジュールを実装しました。カスタム認証モジュールは、クレデンシャルが存在する場合にのみ呼び出されます。
マイ認証モジュールをチェック受信したチャレンジはMYAUTH用の場合:
public Authorization Authenticate(String challenge, WebRequest request, ICredentials credentials)
{
if (!challenge.Contains(AuthenticationType)) // MyAuth
{
{
return null;
}
}
...
// Get the token, omitted here
return authorization;
WebRequestクラスはUseIntegrated.UseDefaultCredentials = true
を持っているか、要求が資格情報が私の認証モジュールが呼び出され、その後WebRequest.Credentials
に追加したとき、私はその後、AuthenticationManager.Register(MyAuthModule);
を呼び出しますすべてが機能します。ただし、WebRequestにクレデンシャルがなく、デフォルトのクレデンシャルを使用していない場合、認可モジュールは呼び出されず、リクエストは失敗します。
チャレンジを受信したのにWebRequestにクレデンシャルがなく、デフォルトのクレデンシャルを使用していないときに、自分の認証モジュールが呼び出されるようにするにはどうすればよいですか?
この動作は仕様であり、ダミーの資格情報を追加するかuseDefaultCredentialsをtrueに設定することで回避できますが、回避策ではなくソリューションに本当に関心があります – Remko