【发布时间】:2012-02-25 14:07:36
【问题描述】:
WCF 客户端如何检测到服务器需要安全证书?检测应在运行时进行。
【问题讨论】:
标签: wcf-security x509certificate
WCF 客户端如何检测到服务器需要安全证书?检测应在运行时进行。
【问题讨论】:
标签: wcf-security x509certificate
要解决此类问题,我首先想到的是连接到该服务器并调用一个方法或类似的东西。将服务器调用放在 try-catch 块中,并在运行时读取消息。
例如,我在我的一个应用程序中尝试了此操作,该应用程序与具有安全证书的服务器连接,删除了我的客户端中的证书部分。我遇到了这样的错误:
The client certificate is not provided. Specify a client certificate in ClientCredentials.
所以如果这个异常被捕获,你可以在运行时检测到服务器需要安全证书。
可能有更多针对此问题的异常消息。另外,我不知道这是否是最好的方法。但它应该可以工作。
【讨论】:
您需要事先了解(设计时)。没有万无一失的方法可以在运行时知道这一点(您可以从错误消息中猜到,但这不是一个好主意。) 如果只需要在运行时决定这一点,那么客户端和服务器必须就他们自己的协议进行通信(例如操作 IsCertRequired)。
【讨论】: