2010-11-04 27 views
0

我不知道它在哪里认为我在铸造。从x509铸造到x5092

这里是我的财产

''' <summary> 
     ''' Gets the GetX509Certificate from a file. 
     ''' </summary> 
     Private ReadOnly Property GetX509Certificate() As X509Certificate2 
      Get 
       If m_X509Certificate Is Nothing Then 
        'Should be able to use any of the "Create" methods in the namespace. 
        Dim path As String = "C:\Development\Workspaces\Productivity Framework\V07\Akcelerant.Connector.RouteOne.Web\Test.cer" 
        m_X509Certificate = X509Certificate2.CreateFromCertFile(path) 
       End If 
       If m_X509Certificate Is Nothing Then 
        Throw New ApplicationException("Certificate not found") 
       End If 
       Return m_X509Certificate 
      End Get 
     End Property 

和继承人那里说即时通讯做非法投:

Dim cert As System.Security.Cryptography.X509Certificates.X509Certificate2 = Me.GetX509Certificate 

为什么说?一切都以正确的类型定义,但它仍然认为我正在投射。

回答

1

CreateFromCertFile生成旧的对象类型。使用此方法,但使用X509Certificate2构造函数进行强制转换。

0

的vb.net代码:

dim certificatePath as String = "c:\cert.cer" 

Dim cert As X509Certificate2 = New X509Certificate2(X509Certificate.CreateFromCertFile(certificatePath))