ciao,
apix72 ha scritto:
Spero di non averti confuso di più le idee.
No, anzi, ora è più chiaro.
Quindi tu con un vbscript, lato client, creavi un'istanza di CAPICOM (che è esso stesso un controllo ActiveX) e lo usavi per accedere alla smart card. Per verificare se ho capito, penso che tu nella pagina abbia un codice simile a quello che
leggo qui:
<script language="vbscript">
Set oStore = CreateObject ("CAPICOM.Store")
oStore.Open CAPICOM_LOCAL_MACHINE_STORE, CAPICOM_MY_STORE, CAPICOM_STORE_OPEN_READ_ONLY
...
</script>
Questo è codice che viene eseguito nel browser del client e può funzionare indipendentemente dalla tecnologia lato server che stai utilizzando.
Quindi, se volessi migrare la tua applicazione da ASP classico ad Asp.Net, questa parte di codice potresti lasciarla intatta.
Tuttavia, anche se funzionasse, non sarebbe una risposta valida alla tua necessità di modernizzare l'applicazione. CAPICOM è un ActiveX a 32 bit che è stato reso obsoleto da Microsoft. L'ultima versione di Windows che lo supporta è Vista, quindi se un tuo client ha un PC con Windows Seven o comunque con un sistema operativo a 64 bit, non potrà accedere alla tua applicazione perché sprovvisto di una versione di CAPICOM.
Dunque potresti riscrivere un nuovo ActiveX usando .NET come ambiente di lavoro, qui trovi un articolo per iniziare. E' compreso il codice da mettere nella pagina che è necessario ad Internet Explorer affinché sappia come scaricare e installare l'activex.
http://www.codeproject.com/Articles/19614/Downloading-C-ActiveX-Components-through-CAB-FileOvviamente dall'ActiveX dovrai utilizzare delle classi .NET che facciano le veci di CAPICOM. Microsoft propone l'utilizzo delle classi contenute nel namespace System.Security.Cryptography.X509Certificates.
http://msdn.microsoft.com/en-us/library/cc778518.aspxTuttavia, tieni presente che un ActiveX ti gira solo in Internet Explorer quindi se il client volesse usare un altro browser incontrerebbe dei problemi.
Un'alternativa a tutto ciò, che non utilizza ActiveX, è configurare IIS affinché consenta la navigazione all'utente solo se in possesso di un certificato client. E' il sistema usato per esempio da alcuni portali della pubblica amministrazione. Se il client viene opportunamente configurato, sarà il browser stesso a fornirti il certificato e potrai leggere le sue proprietà da Asp.Net con
Request.ClientCertificate.
Come parte del lavoro dovrai configurare IIS e mappare 1-a-1 i certificati ad utenti della tua applicazione, ma io non l'ho mai fatto e non saprei darti consigli con cognizione di causa su questo. Ti mando un link, fai qualche ricerca.
http://blogs.msdn.com/b/puneetgupta/archive/2009/08/03/where-is-the-client-certificates-ui-in-iis-7-0.aspxciao