C# 将不记名令牌传递给生成的代理 class 以添加 header
C# Passing bearer token to generated proxy class to add header
我知道我可以将 headers 添加到 WebService 代理 class,它通过覆盖 GetWebRequest 来扩展 SoapHttpClientProtocol。这工作正常。我的问题是,当我实例化我的网络服务 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 并将令牌传递给构造函数。
但是,当我在 return 请求之前将 header 转储到文本文件时,输出如下所示:
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 4.0.30319.42000)
Authorization:
所以我知道正在调用覆盖并且正在添加 header,它只是没有从变量 _token 中获取不记名令牌的值, 应该be 在实例化 class 时设置。
我错过了什么?
尝试使用此语法添加令牌:
request.PreAuthenticate = true;
request.Headers.Add("Authorization", "Bearer " + GetToken());
我知道我可以将 headers 添加到 WebService 代理 class,它通过覆盖 GetWebRequest 来扩展 SoapHttpClientProtocol。这工作正常。我的问题是,当我实例化我的网络服务 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 并将令牌传递给构造函数。
但是,当我在 return 请求之前将 header 转储到文本文件时,输出如下所示:
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 4.0.30319.42000)
Authorization:
所以我知道正在调用覆盖并且正在添加 header,它只是没有从变量 _token 中获取不记名令牌的值, 应该be 在实例化 class 时设置。
我错过了什么?
尝试使用此语法添加令牌:
request.PreAuthenticate = true;
request.Headers.Add("Authorization", "Bearer " + GetToken());