我们使用AutoRest基于API Swagger文件生成客户端代码 .
我正在尝试将客户端证书传递给API . 但是注意到生成的客户端代码不接受WebRequestHandler .
生成的代码如下所示:
public MyTestApiV1(Uri baseUri, params DelegatingHandler[] handlers) : this(handlers)
{
if (baseUri == null)
{
throw new ArgumentNullException("baseUri");
}
this.BaseUri = baseUri;
}
我觉得我在这里错过了一些东西 . 有没有人设法使用AutoRest发送客户端证书?
试过这个,但webRequestHandler总是为null:
var webRequestHandler = client.HttpMessageHandlers.First() as WebRequestHandler;
if (webRequestHandler != null)
{
var secretRetrieved = keyVault.GetSecretAsync("my-cert");
var pfxBytes = Convert.FromBase64String(secretRetrieved.Result);
// or recreate the certificate directly
var certificate = new X509Certificate2(pfxBytes);
webRequestHandler.ClientCertificates.Add(certificate);
}
1 回答
您可以使用另一个重载的构造函数:
ServiceClient是生成的客户端的基类 . 因此,代码可能如下所示: