1

Deak 伙计们,我正在尝试使用 Fellow Oak Dicom 库设置 Dicom 客户端。我使用 DicomClient 类成功地完成了所有查询,如他们的 github 页面https://github.com/fo-dicom/fo-dicom中所示。

但是,如何指定用于验证我的客户的证书?

我发现这就是你通常在 C# 中所做的事情,https://www.medo64.com/2014/09/client-authenticated-tls-in-c/ 我看到这正是 Fo-Dicom 库的内容正在做。我找不到指定我的证书的方法。

4

1 回答 1

3

好的,我通过在主构造函数中覆盖我刚刚替换的 DesktopNetworkStream 类来解决它,

ssl.AuthenticateAsClient(host)

var trust = new X509Certificate2("serverCert.p12","myPwd");
var key = new X509Certificate2("clientCert.p12","myPwd");
var clientCertificateCollection = new X509CertificateCollection(new X509Certificate[] { trust,key });

ssl.AuthenticateAsClient(host, clientCertificateCollection, SslProtocols.Tls12, false);

我称之为,而不是

client.Send(serverIp, serverPort, false, callingAET, calledAET);

var _networkStream = new DesktopNetworkStream(serverIp, serverPort, true, true, true);
client.Send(_networkStream, callingAET, calledAET, 5000);
于 2019-03-29T09:12:19.483 回答