2009-07-14 15 views
4

私は第三者からの報告を要求したいと彼らはPOSTを経由して、「基本アクセス認証」が必要です。C#SSL基本アクセス認証

Your client application must use Basic Access Authentication 
to send the user name and password. 

誰かが正しい方向に私を指すことができますか?

編集:私はthis postを見ましたが、2つの答えがあり、私は何をする必要があるのか​​、どれが好ましい方法であるかわかりません。

答えて

6

あなたはWebRequestクラスを使用すると仮定すると、あなたはあなたの要求にCredentialCacheを添付:

+2

このブログ記事を参照してくださいこれは、あなたが望むものを、そのポストで受け入れ答えは、物事に苦労してやっているされているが、それは彼がやっている何のために必要な場合があります。プロキシを使用している場合は、request.Proxy.Credentialsを介して別の資格情報を送信する必要があることに注意してください。また、プロキシを使用する場合は、PreAuthenticateを使用する場合と使用できない場合があります。また、必ずしもCredentialCacheを実行する必要はありません。単にrequest.Credentials = nc;違いが何であるか分かりません。 –

+0

@Allen Basicでは、ncとccの間に違いはありません。ダイジェストでは、キャッシュは正しいことを行います。ダイジェストを一度だけネゴシエートしてから、新たに増加する 'nc'(ダイジェストnc、ネットワーククレジットではなく)で事前認証して余分な往復を避けます。したがって、私は、ネットワークの信用ではなくキャッシュを使用する習慣がある方が良いと信じています。 –

2

基本骨子は次のようである:

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url); 
request.Method = WebRequestMethods.Http.Get; 
request.Credentials = new NetworkCredential(username, password); 

時には要求の資格情報、使用に問題があります代替は、要求ヘッダーに認証データを追加することです。

string authInfo = username + ":" + password; 
authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo)); 
request.Headers["Authorization"] = "Basic " + authInfo; 

f以上の詳細は

http://charlie.cu.cc/2012/05/how-use-basic-http-authentication-c-web-request/