posts - 4238, comments - 3946, trackbacks - 370

My Links

News



Subscribe Subscribe

image image image





This is my personal weblog. These postings are provided 'AS IS' with no warranties, and confer no rights. The views expressed on this weblog are mine alone and do not necessarily reflect the views of my employer.

Licenza Creative Commons

Tag Cloud

Archives

Post Categories

Accettare o meno certificati digitali non validi o scaduti

Quando navighiamo in siti protetti con HTTPS, a volte capita di vedere il classico prompt di explorer

certificato non valido...

Quando però dobbiamo accedere ad un sito tramite le classi di .NET, ad esempio la HttpWebRequest, oppure la WebClient, la policy di default accetta solo i certificati validi, e al massimo quelli validi ma scaduti.

Se volessimo invece richiedere all'utente l'autorizzazione a procedere, dobbiamo andare a cambiare la policy di default.

Questo si fa creando una classe che implementa l'interfaccia ICertificatePolicy che ha l'unica funzione CheckValidationResult che deve ritornare True o False a seconda se si vuole procedere oppure no.

Un'istanza di questa classe bisogna assegnarla alla proprietà CertificatePolicy della classe ServicePointManager.

Alla funzione CheckValidationResult vengono passate la ServicePoint che gestisce la connessione, il certificato X509 incriminato, la WebRequest che ha generato il problema ed il codice del problema.

Se dal codice del problema si vuole ricavare la descrizione del problema si può sfruttare il codice presente qui.

A questo punto l'utente ha tutte le informazioni per poter decidere se continuare o rifiutare la richiesta, e in quel caso verrà generata un'eccezione nel metodo che aveva acceduto alla risorsa protetta.

Ricordiamoci prima di cambiare la ServicePointManager.CertificatePolicy, di salvarla, in modo poi di poterla ripristinare.

Print | posted on giovedì 16 settembre 2004 23:06 |

Feedback

Gravatar

# Ho postato un altro tip...

16/03/2005 17:00 | Lorenzo Barbieri @ UGIblogs!
Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET