Làm cách nào để tắt thu hồi chứng chỉ cho ứng dụng khách của dịch vụ WCF? Proxy máy khách được tạo bởi wsdl.exe và kế thừa SoapHttpClientProtocol.Làm thế nào để tắt thu hồi chứng chỉ cho một khách hàng của dịch vụ WCF?
8
A
Trả lời
9
Tôi nghĩ rằng bạn đang tìm kiếm ServicePointManager.ServerCertificateValidationCallback
:
nào mất một Đại biểu RemoteCertificateValidationCallback
:
http://msdn.microsoft.com/en-gb/library/system.net.security.remotecertificatevalidationcallback.aspx
Tôi chưa từng xử lý chứng chỉ bị thu hồi trước đó (tôi có tay để xử lý các vấn đề khác như SSL đã hết hạn), nhưng tôi đoán bạn chỉ cần làm một cái gì đó như:
class Program
{
static void Main(string[] args)
{
ServicePointManager.ServerCertificateValidationCallback +=
new RemoteCertificateValidationCallback(ValidateCertificate);
// Do WCF calls...
}
public static bool ValidateCertificate(object sender, X509Certificate cert,
X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
if(sslPolicyErrors == SslPolicyErrors.RemoteCertificateChainErrors)
{
foreach(X509ChainStatus chainStatus in chain.ChainStatus)
{
if(chainStatus.Status == X509ChainStatusFlags.Revoked)
{
return true;
}
}
}
return false;
}
}
1
Bạn có thể đặt xác thực chứng chỉ và các tùy chọn thu hồi trong tệp cấu hình cho ứng dụng của bạn:
http://www.request-response.com/blog/PermaLink,guid,e9bb929b-d0b4-4626-b302-1d2715fc344a.aspx
Điều này chỉ đúng đối với xác thực chứng chỉ ứng dụng khách trên máy chủ. Để xác thực chứng chỉ máy chủ trên máy khách, bạn phải sử dụng phương thức trên. –
Vui lòng không đăng câu trả lời chỉ là liên kết. Có hai lý do chính cho việc này: thường hữu ích hơn nhiều khi trả lời trực tiếp các vấn đề cụ thể của người dùng và thậm chí cả các liên kết đến các tài nguyên tốt đôi khi trở nên tồi tệ. Vui lòng xem [bài đăng meta này] (http://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links-elsewhere-really-good-answers) để biết thêm chi tiết. – Pops