我正在使用在VS2005下运行的vb6代码。这是基于Windows的应用程序。
问题:在客户端计算机上应用了一些Microsoft安全修补程序更新。这些补丁程序应用程序未运行之后。当我们删除补丁时,应用程序运行正常。
应用程序正在访问远程服务以进行身份验证和其他服务调用(第三方)。
完成以下步骤
Fatal alert:80
我使用了fiddler工具我收到了像HTTPS握手问题的响应消息。证书问题。我不明白这一点。因为应用程序运行很长时间没有任何问题。
我在Microsoft论坛中阅读了相关文章:根据我的调查,我们发现事件日志错误致命警报:80在安装新补丁后以某种方式与证书过期有关。 (http://answers.microsoft.com/en-us/windows/forum/windows_other-windows_update/kb2992611-and-schannel-internalerror-during/20b3270b-45e3-4002-8f31-8bd0430ba080)
我尝试了最好的级别来实现绕过证书验证,但也没有按预期工作
配置级别
添加了证书检查错误等设置。但没用“
代码级别 第1步登录页面:登录按钮 System.Net.ServicePointManager.CertificatePolicy = New GEPUIS_MTS_Objects.trustedCertificatePolicy
步骤2:检查调用服务名称和服务器详细信息的身份验证
在此方法中调用此方法check_authentication()将用户标识和密码传递给第三方
Method check_authentication()
{
MTS_Objects.authenticate(sUserID, sPassword)
try
MTS_Objects.Author(sUserID, sPassword, SAppl, ServerName)
}
Public Sub authenticate(ByVal user As String, ByVal password As String)
Dim filter As OmniSwitchOutputFilter
Dim coll As SoapOutputFilterCollection
filter = New OmniSwitchOutputFilter(user, password)
coll = WebServicesConfiguration.FilterConfiguration.OutputFilters
coll.Clear()
coll.Add(filter)
End Sub
Public Sub Author(ByVal user As String, ByVal password As String, ByVal MyAppl As String, ByVal serverName As String)
Dim InputUser As New com.XXXX.XXX.XXXX.soap.UserSecurity.UserAuth_T()
Dim MyHeader As New com.XXXX.XXX.XXXX.soap.UserSecurity.Header_T()
Dim authManager As AuthManager
Dim url As Uri
Dim principal As System.Security.Principal.GenericPrincipal
Select Case serverName
Case "UNIT RE (XXXX)"
'url = New Uri("https://XXXX.z.XXX.XXXX.com:portnumber/is2/AuthService")
url = New Uri(ConfigurationManager.AppSettings("UNITRE").ToString())
End Select
**authManager = New AuthManager(url)**
Try
**principal = authManager.authenticate(user, password, "")**
Catch ex As TransportException
Throw New Exception("TransportException occured: " + ex.Message)
Catch ex As AuthManagerException
Throw New Exception("AuthManagerException occured: " + ex.Message)
Catch ex As System.Exception
Throw New Exception("Exception occured: " + ex.Message)
End Try
Dim x As ISFIdentity
x = principal.Identity
End Sub
End Module
调用此方法authManager.authenticate(user,password,“”)此方法传递给下面的c。类。我们可以调用以下方法获得True,并且无需修补机器就可以获得清晰的证书信息。我无法在TEST机器中调试,因为我没有VS。
Imports System
Imports System.Net
Public Class trustedCertificatePolicy
Implements ICertificatePolicy
Public Sub trustedCertificatePolicy()
End Sub
Public Function CheckValidationResult(ByVal srvPoint As ServicePoint, ByVal cert As System.Security.Cryptography.X509Certificates.X509Certificate, ByVal request As WebRequest, ByVal problem As Integer) As Boolean Implements ICertificatePolicy.CheckValidationResult
Return True
End Function
End Class
请求将调用CheckValidationResult方法,但我没有得到响应。
我正在使用CORBA服务。根据大型机团队,他们无法看到应用程序的请求。
这是只读应用程序。我可以在没有修补机的情况下运行此应用程序。这是在Windows 2007操作系统下运行。
这只是我可以从我的结尾提供输入。这个问题我将面临10天。
可能是证书问题。但是否有可能绕过证书验证。