[英]C# Passing bearer token to generated proxy class to add header
我知道我可以向通過覆蓋 GetWebRequest 擴展 SoapHttpClientProtocol 的 WebService 代理 class 添加標頭。 這工作正常。 我的問題是,當我實例化我的 web 服務 class 時,我傳入了需要添加到 header 的不記名令牌值; 但是它沒有被使用,我無法弄清楚我做錯了什么。
public partial class MyService : System.Web.Services.Protocols.SoapHttpClientProtocol {
private string _token;
private void SetToken(string t) { this._token = t; }
private string GetToken() { return this._token; }
protected override System.Net.WebRequest GetWebRequest(Uri uri) {
System.Net.WebRequest request = base.GetWebRequest(uri);
request.Headers.Add("Authorization", GetToken());
System.IO.File.WriteAllText(@"C:\temp\test.txt", request.Headers.ToString());
return request;
}
public MyService (string t){
SetToken(t);
// ... other stuff
}
}
從我的代碼隱藏中,我實例化 MyService 並將令牌傳遞給構造函數。
但是,當我在返回請求之前將標頭轉儲到文本文件時,output 看起來像這樣:
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 4.0.30319.42000)
Authorization:
所以我知道正在調用覆蓋並且正在添加 header,它只是沒有從變量 _token 中獲取承載令牌的值,應該在實例化 class 時設置該值。
我錯過了什么?
嘗試使用此語法添加令牌:
request.PreAuthenticate = true;
request.Headers.Add("Authorization", "Bearer " + GetToken());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.