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