1
我們正在使用AutoRest基於API Swagger文件生成客戶端代碼。如何使用AutoRest客戶端傳遞客戶端證書
我試圖將客戶端證書傳遞給API。但注意到生成的客戶端代碼不接受WebRequestHandler。
生成的代碼看起來像下面:
public MyTestApiV1(Uri baseUri, params DelegatingHandler[] handlers) : this(handlers)
{
if (baseUri == null)
{
throw new ArgumentNullException("baseUri");
}
this.BaseUri = baseUri;
}
我覺得我失去了一些東西。有沒有人設法使用AutoRest發送客戶端證書?
試過,但webRequestHandler始終爲空:
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);
}
您可能需要使用[揚鞭代碼生成(https://github.com/swagger-api/swagger-codegen)生成C#API客戶端代替,並按照HTTP嘗試: //stackoverflow.com/questions/34506086/how-to-restsharp-add-client-certificate-in-https-request-c添加客戶端證書。 –
是的,這是由autorest codegen –
生成的代碼。我不熟悉Autorest生成的C#代碼。我的建議是嘗試一種不同的生成器,它可以在C#API客戶端中附加客戶端證書。 –