使用智能卡进行TLS握手会随机失败

时间:2013-04-25 09:41:36

标签: .net sockets ssl smartcard

我有一个Windows服务,它使用.NET Socket类定期连接到主机。它是使用SMTP协议的标准TCP / IP连接。

使用存储在智能卡上的证书来保护Connection。我正在使用SslStream类来处理SSL的东西。

大部分时间都可以使用。但是在随机的时间点,身份验证失败。我收到这个错误:

A call to SSPI failed, see inner exception.
Error type:
System.Security.Authentication.AuthenticationException
Server stack trace: 
at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result)
at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization)

内部异常:

System.ComponentModel.Win32Exception
The Local Security Authority cannot be contacted

尝试失败后,AuthenticationExcpetion仍然存在,但内部异常发生变化:

A signature operation must be performed before the user can authenticate

在此点我必须重新启动服务,现在它将完美连接。在错误再次发生之前,SSL握手将会工作一段时间(有时是几天)。

0 个答案:

没有答案