2017-11-17 4 views
0

これは100回前に尋ねられたことがわかりましたが、私はこの作業を行うことができません。 401 Webサービスに接続する必要のある.Net Webサービスクライアントがあり、401チャレンジレスポンスを返しません。最初の呼び出しで認証ヘッダーを送信する必要があります。私は別のファイルに部分クラスを作成して、生成されたプロキシクラスのGetWebRequestメソッドをオーバーライドしました。また、生成されたファイルにメソッドを追加して、それが違いを生むかどうかを確認しましたが、コードは呼び出されません。これはもともとVS 2013で作成された.Net 3.5 Webサービスプロジェクトでしたが、ターゲットフレームワークを4.0,4.5 e.t.cに変更しようとしました。それは何の効果もありません。.Net Webサービスクライアントへの認証ヘッダーの設定

コード私が使用しています:

[System.Web.Services.WebServiceBindingAttribute(Name = "WSLDSD03_v1_webService_ValidationTicketCreation_Binder", Namespace = "http://llvap002d/WSLDSD03.v1.webService:ValidationTicketCreation")] 
public partial class WSLDSD03_v1_webService_ValidationTicketCreation_Binder : System.Web.Services.Protocols.SoapHttpClientProtocol 
{ 
    protected override WebRequest GetWebRequest(Uri uri) 
    { 
     var request = base.GetWebRequest(uri); 

     string WSUID = ConfigurationManager.AppSettings["WSUID"]; 
     string WSPWD = ConfigurationManager.AppSettings["WSPWD"]; 
     string encoded = Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes(WSUID + ":" + WSPWD)); 

     request.Headers.Add("Authorization", "Basic " + encoded); 

     return request; 
    } 
} 

アップデート:私は持っていたので、そのクリーンなソリューションの後、私は生成されたクラスにそれを移動する場合の方法は、実際に呼び出されるん再構築します。これは問題のように見える別のファイルの部分クラスです。

答えて

0

単純なコーディングエラーであることが判明しました。生成されたプロキシファイルの名前空間がMyProject.WebReferenceに似ていたのに気づきませんでしたが、別のファイルではメインプロジェクトの名前空間を使用しました。

関連する問題