1

私は、変更された基本認証を使用してbit.lyのREST APIと通信しようとしています。しかし、これを動作させるには、HttpWebRequestが最初の要求で資格情報を添付する必要がありますが、HttpWebRequestは最初の要求で資格情報を送信せず、PreAuthenticateがtrueに設定されていても資格情報を送信する前に401を待ちます(PreAuthenticate it後続のすべての要求の資格情報を送信します)。.Net CF 2.0最初のリクエストでHttpWebRequest事前認証と送信資格情報

私は、次のbit.lyそれを必要とするように動作するようにHttpWebRequestのを取得しようとしています

(1)フォーマットhttp://username:[email protected]/methodにリクエストを送信します。

bit.lyではサポートされていません(基本認証の偽装実装であるため、ヘッダーのみをチェックします)。

(2)手動でHttpWebRequestに "Authorization"ヘッダーを挿入します。

Authorizationヘッダーが保護され、保護されたヘッダー値を変更しようとすると失敗し、ArgumentExceptionがスローされるため、.Net CFでは使用できません。

(3)必要な動作を実装するために、別のクラスのHttpWebRequestまたはWebRequestを継承します。

デフォルトでは、HttpWebRequestクラスはHTTPおよびHTTPSスキームのサービス要求に登録されています。重複プレフィックスが許可されていないため、これらのスキームに異なるWebRequest子孫を登録しようとすると失敗します。

誰もが何か提案がありますか?

答えて

1

(2)に関する注記。 http://blog.kowalczyk.info/article/Forcing-basic-http-authentication-for-HttpWebReq.htmlに記載されている方法を使用して承認ヘッダーを挿入し、.NET CF 2.0で正常に動作します。

public void SetBasicAuthHeader(WebRequest req, String userName, String userPassword) 
{ 
    string authInfo = userName + ":" + userPassword; 
    authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo)); 
    req.Headers["Authorization"] = "Basic " + authInfo; 
} 
関連する問題