2011-12-08 24 views
0

私はwsdlからのC#プロキシビルドを持っています。 リクエストのヘッダに基本認証を追加しようとしています。 私が呼び出しようとしているWebサービスは、C#ではありません。シオマネキでSOAPリクエストのヘッダーに基本認証を追加する - WebService

(PHPがよい)、私は「何の認証ヘッダーが存在しない」ことを

を見ることができますそして、私の呼び出しの結果は次のとおりです。悪いユーザ名/パスワードここで

は、私が追加したものです私のプロキシ

protected override System.Net.WebRequest GetWebRequest(Uri uri){ 
    System.Net.HttpWebRequest request; 
    request = (System.Net.HttpWebRequest)base.GetWebRequest(uri); 
    if (PreAuthenticate){ 
     System.Net.NetworkCredential networkCredentials = 
     Credentials.GetCredential(uri, "Basic"); 
     if (networkCredentials != null) 
     { 
      byte[] credentialBuffer = new System.Text.UTF8Encoding().GetBytesnetworkCredentials.UserName + ":" + networkCredentials.Password); 
      request.Headers["Authorization"] = "Basic" + Convert.ToBase64String(credentialBuffer);> 
     } 
     else 
     { 
      throw new ApplicationException("No network credentials"); 
     } 
    } 
    return request; 
} 
+1

ヘッダーをまったく使用する必要はありません。単にrequest.Credentialsを設定しますか? –

+0

このWebサービスの設計者は、ヘッダーに資格情報を送信することが必須であると言います。私もリクエストを試みました。クレデンシャル。 – mappy

+0

もちろん、資格情報はヘッダーに入っていますが、一般的に、あなたはそこに置く必要がありません。 –

答えて

0

に私はあなたがWCFを使用できる場合、私はそれを使用することをお勧めし、しばらく前に同様の問題があったが、あなたの場合、私のような、あまりにも、あなたはこの実装を使用することができます許可されていません。 http://geekswithblogs.net/SunnyCoder/archive/2009/03/15/username-password-amp-ws-security-with-silverlight.aspx

カスタムxmlを追加しようとすると、さまざまな問題が発生します。これは、WCFを使用できない場合にのみ使用してください。 SilverlightはHTTPS経由の認証をサポートしています。私はWCFなしで信じていますが、プレーンなHTTPの認証はWCFに移行しました。

+0

私はPHPで作られたデザイナーからサンプルを入手しました。それはここのSoapClientと$ヘッダ を使用するサンプルです $ヘッダ=」パスワードはsetHeaders($ヘッダ) 私はウィジェットアプリケーションをビルドして呼び出しをテストし、Fiddlerはヘッダーのcrendentialsについて何も表示しません。いくつかのサイトで見たようにヘッダを完全に書き直す必要があります。 WCFの一見 – mappy

関連する問題