http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=207279&SiteID=1
From what I understand from the above link is that the Private Key of the certificate stored in SmartCard is not easily readable.
You will have to enter PIN to be able to extract the PrivateKey from the certificate.
As explained in that forum, one of the techniques would be to use Win32 API, CryptAcquireCertificatePrivateKey , from Crypto32.dll.
Another technique would be to construct the RSACryptoServiceProvider with CspParameters structure which contains the name of the smart card CSP.
Try it out and let us know if it is working. I don't have SmartCard reader so I have not tested this solution. ![Embarrassed [:$]](/emoticons/emotion-10.gif)
Hope it gives you some idea to get started.![Idea [I]](/emoticons/emotion-55.gif)
Maung Maung