我设法建立了一个需要客户端证书的IIS网站,我也得到了代码,但是当我将代码发送给其他人时,它仍然使用我的证书。
这是我的代码:
private async Task<Pas> testPas(string loc)
{
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
using (var client = new HttpClient(new HttpClientHandler { UseProxy = false, ClientCertificateOptions = ClientCertificateOption.Automatic }))
{
client.BaseAddress = new Uri("https://somesite.tk");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage response = await client.GetAsync(loc).ConfigureAwait(false);
}
}
我认为这是因为ClientCertificateOptions.Automatic检索证书并将其存储在项目的某个地方,但我不知道。
即使我安装了另一个有效个人证书,它也会尝试选择我测试过的那个。
编辑:找到解决方案。 虽然真的很奇怪,但它似乎导入了我在Chrome中使用的证书。当我更改我在Chrome中使用的证书时,应用程序也将使用该证书,但在控制台(mmc)中更改它将无效。