Procedura testata per chi sviluppa in VB

Pagina 1 di 2 1, 2  Seguente

Andare in basso

Procedura testata per chi sviluppa in VB

Messaggio  lucky2005 il Mer Mar 23, 2011 11:06 pm

Procedura che opera in ambiente effettivo per applicativi in VB


1. Modificare l’endpoint http://172...... Con https://sisssl.sistri.it/SIS/services/SIS? wsdl
2. Avere un certificato valido in formato p12
3. Il file wsdl così modificato deve essere caricato nel vostro applicativo dal comando “aggiungere riferimento al servizio”
4. Modificare il file app.config (presente in esplora soluzioni) parametro ‘clientcredentialtype’
<security mode="Transport">
<transport clientCredentialType="Certificate" proxyCredentialType="None"
realm="" />
5. Metodo GetversioneSIS

Dim obj1 As SIS_WSDLClient = New SIS_WSDLClient

Dim obj5 As SIS_WSDLClient = New SIS_WSDLClient()
Dim identity = "userid******"

Dim store As New X509Store("teststore", StoreLocation.CurrentUser)
store.Open(OpenFlags.ReadWrite)
Dim certificate As New X509Certificate2()

Dim certificate1 As New X509Certificate2("c:\certificato.p12", "eventuale password certificato")

Dim collection As New X509Certificate2Collection()
collection.Add(certificate1)

store.Add(certificate1)

store.AddRange(collection)
obj1.ClientCredentials.ClientCertificate.SetCertificate(StoreLocation.CurrentUser, _
StoreName.My, X509FindType.FindBySubjectName,“CN=nome certificato”)


Dim versione2 = obj1.GetVersioneSIS(identity)

MsgBox(versione2)


6. Metodo GetAzienda
Dim obj1 As SIS_WSDLClient = New SIS_WSDLClient

Dim obj5 As SIS_WSDLClient = New SIS_WSDLClient()
Dim identity = "userid****"
Dim codfisc1 = "codice fiscale azienda"
Dim obj2 As ParametriAggiuntivi = New ParametriAggiuntivi
obj1.ClientCredentials.ClientCertificate.SetCertificate(StoreLocation.CurrentUser, _
StoreName.My, X509FindType.FindBySubjectName,”CN=nome certificato")

Dim campo1 = obj1.GetAzienda(identity, obj2, codfisc1).ragioneSociale

MsgBox(campo1)


************* Per la gestione errori SISEXCEPTION *********
Prima di invocare il metodo

Try

....... Metodo......

Catch error1 As FaultException(Of SISException)



Dim errormsg As String = error1.Detail.Nodes(1).InnerText
Dim errorcode As String = error1.Detail.Nodes(0).InnerText

MsgBox(errorcode)
MsgBox(errormsg)

End Try

Con questa routine potete leggere eventuali errori generati dall'applicazione


Ultima modifica di lucky2005 il Mar Apr 05, 2011 5:26 pm, modificato 6 volte
avatar
lucky2005
Utente Attivo

Messaggi : 69
Data d'iscrizione : 07.02.11
Località : Catania

Torna in alto Andare in basso

Grazie

Messaggio  sandrino71 il Gio Mar 24, 2011 12:38 pm

Grazie lucky per il codice fornito.
Provato con il mio visaulstudio ottengo un errore dovuto al mio certificato ora provo a vedere se riesco a rigenerare il .12
Scusa lucky hai usato openssl per creare il p12 appunto??
Grazie

Ciao

avatar
sandrino71
Membro della community

Messaggi : 27
Data d'iscrizione : 01.11.10

Torna in alto Andare in basso

Re: Procedura testata per chi sviluppa in VB

Messaggio  lucky2005 il Gio Mar 24, 2011 1:00 pm

sandrino71 ha scritto:Grazie lucky per il codice fornito.
Provato con il mio visaulstudio ottengo un errore dovuto al mio certificato ora provo a vedere se riesco a rigenerare il .12
Scusa lucky hai usato openssl per creare il p12 appunto??
Grazie

Ciao

si generato con openssl per windows
avatar
lucky2005
Utente Attivo

Messaggi : 69
Data d'iscrizione : 07.02.11
Località : Catania

Torna in alto Andare in basso

Re: Procedura testata per chi sviluppa in VB

Messaggio  lucky2005 il Gio Mar 24, 2011 10:09 pm

nel 1° messaggio ho inserito un altro metodo
avatar
lucky2005
Utente Attivo

Messaggi : 69
Data d'iscrizione : 07.02.11
Località : Catania

Torna in alto Andare in basso

Rq autentica con .p12 da vb.net

Messaggio  sandrino71 il Sab Mar 26, 2011 11:24 am

Ciao Lucky,

ho provato il codice postato da te, però quando vado a metterlo sotto debug di visual studio, mi da errore alla seguente riga di codice:

obj1.ClientCredentials.ClientCertificate.SetCertificate(StoreLocation.CurrentUser, StoreName.My, X509FindType.FindBySubjectName, "CN=la mia userid")

E come messaggio di errore mi restituisce: Impossibile trovare il certificato X.509 utilizzando i criteri di ricerca seguenti: StoreName 'My', StoreLocation 'CurrentUserName', FindType 'FindBySubjectName', FindValue 'CN=userid'

Sai indicarmi qualche possibile soluzione a questo problema.

Grazie in anticipo

Ciao
avatar
sandrino71
Membro della community

Messaggi : 27
Data d'iscrizione : 01.11.10

Torna in alto Andare in basso

Re: Procedura testata per chi sviluppa in VB

Messaggio  lucky2005 il Dom Mar 27, 2011 7:52 pm

sandrino71 ha scritto:Ciao Lucky,

ho provato il codice postato da te, però quando vado a metterlo sotto debug di visual studio, mi da errore alla seguente riga di codice:

obj1.ClientCredentials.ClientCertificate.SetCertificate(StoreLocation.CurrentUser, StoreName.My, X509FindType.FindBySubjectName, "CN=la mia userid")

E come messaggio di errore mi restituisce: Impossibile trovare il certificato X.509 utilizzando i criteri di ricerca seguenti: StoreName 'My', StoreLocation 'CurrentUserName', FindType 'FindBySubjectName', FindValue 'CN=userid'

Sai indicarmi qualche possibile soluzione a questo problema.

Grazie in anticipo


Allora il nome certificato è sbagliato controlla attentamente perchè il nome certificato differisce dalla userid esempio come nel mio caso :
userid : tizio.caio1234
cn=certificato : tizio.caio2323
ciao

Ciao
avatar
lucky2005
Utente Attivo

Messaggi : 69
Data d'iscrizione : 07.02.11
Località : Catania

Torna in alto Andare in basso

RE: Procedura testata per chi sviluppa in VB

Messaggio  mary69 il Gio Mar 31, 2011 10:26 am

Ciao lucky e grazie per il codice fornito.
Sto provando a fare come hai descritto ma ho due problemi:
Il primo è quello che quando aggiungo il riferimento web non mi si creano le classi con tutti i vari metodi,
l'altro è che nel mio file app.config non trovo la voce clientCredentialType.
Il programma è scritto in VB2008.
Non ho una grossa esperienza con VB2008, per cui probabilmente ho saltato qualche passaggio.
Mi sai dare un consiglio.

Ciao

avatar
mary69
Membro della community

Messaggi : 12
Data d'iscrizione : 07.12.10

Torna in alto Andare in basso

Re: Procedura testata per chi sviluppa in VB

Messaggio  lucky2005 il Gio Mar 31, 2011 12:48 pm

Allora mary69 anche il mio applicativo è sviluppato in vb2008.
Nel file app.config non trovi il riferimento perchè non hai caricato il servizio SIS.
Come ho già detto nel post precedente riferito a Visual Studio bisogna fare "aggiungi riferimento al servizio" e no aggiungi riferimento web.
Inoltre è opportuno modificare prima il file wsdl SIS (endpoint ....) prima di darlo in pasto all'applicativo.
avatar
lucky2005
Utente Attivo

Messaggi : 69
Data d'iscrizione : 07.02.11
Località : Catania

Torna in alto Andare in basso

Re: Procedura testata per chi sviluppa in VB

Messaggio  mary69 il Gio Mar 31, 2011 2:40 pm

ok, allora il mio problema è a monte. Nel mio progetto ho solo la possibilità di aggiungere un riferimento web e non un riferimento a un servizio.
Se aggiungo un riferimento web all'indirizzo dell'ambiente di test, mi mostra i metodi ma poi non succede nulla,
se invece provo con l'indirizzo effettivo ottengo l'errore: Errore durante il download di 'https://sisssl.sistri.it/SIS/services/SIS?wsdl'.
Richiesta non riuscita con codice di stato HTTP 403: Forbidden.

Come posso aggiungere un riferimento ad un servizio, ho letto il post precedente, ma non ho capito come si possa fare.
Grazie
avatar
mary69
Membro della community

Messaggi : 12
Data d'iscrizione : 07.12.10

Torna in alto Andare in basso

Ringrazio

Messaggio  Massimo2000 il Gio Mar 31, 2011 4:32 pm

Dopo un periodo di assenza, riesco ancora a dedicarmi al sistri.

Innanzi tutto un ringraziamento a lucky per le dritte e il codice postato.

Ho provato ad eseguire quanto suggerito ma ancora non riesco ad ottenere risposta dal servizio. Mi restituisce "errore TCP 10060: Impossibile stabilire la connessione .... mancata risposta dall'host collegato 172.25.1.91:80.

Ho notato che anche nell'app.config è indicato l'endpoint. Modificandolo come nel file WSDL il risultato non cambia, anzi peggiora.
Qualcuno mi sa indicare come posso fare?

Grazie in anticipo.

Inoltre, mi hanno detto che non è possibile effettuare i test nel servizio di sperimentazione se non è stata fatta domanda di accesso a suo tempo (non so esattamente a chi) e non si è comunicato il proprio indirizzo IP.
Mi hanno anche riferito che non esiste una normativa di legge che preveda l'accesso al sistri da parte di gestionali e che quindi il tutto sarebbe "illegale". Qualcuno ne sa di più?
avatar
Massimo2000
Membro della community

Messaggi : 20
Data d'iscrizione : 22.02.11

Torna in alto Andare in basso

Sperimenatazione

Messaggio  mary69 il Gio Mar 31, 2011 4:41 pm

La domanda io l'ho fatta via email a sperimentazione@sistri.it, ti chiedono i dati della azienda per spedirti le chiavette usb, e un indirizzo ip statico.
Poi con le chiavette usb devi fare la trafila di richiesta del certificato come per l'ambiente effettivo.
Dalla prima email di richiesta alla ricezione delle chiavette sono passati alcuni mesi, e ad oggi non ho ancora ricevuto il certificato . . . .

Per quello che so io l'accesso al sistri da parte di gestionali è previsto tramite l'interoperabilità, ed è anche consentita la firma dei movimenti,
ma il punto dolente è integrare i servizi web nel proprio gestionale.

Attendo anch'io un aiuto da chi è più avanti di me.
pale
avatar
mary69
Membro della community

Messaggi : 12
Data d'iscrizione : 07.12.10

Torna in alto Andare in basso

Re: Procedura testata per chi sviluppa in VB

Messaggio  lucky2005 il Gio Mar 31, 2011 4:49 pm

Ho provato ad eseguire quanto suggerito ma ancora non riesco ad ottenere risposta dal servizio. Mi restituisce "errore TCP 10060: Impossibile stabilire la connessione .... mancata risposta dall'host collegato 172.25.1.91:80.

Ricapitoliamo il file wsdl SIS deve essere modificato prima di aggiungerlo al progetto.
Aprite Internet Explore e accedete alla famosa url https://sisssl.sistri.it/.........
Appena avete visualizzato il file salvatelo in una cartella con il nome es. SISmod

Aprite il file SISmod in visual basic e andate a modificare l'endpoint alla fine del file
http://172...... con https://sisssl.sistri.it/.........
Salvate il file così modificato in c:(per comodità)
Da visual basic a questo punto eliminate la eventuale Service Reference1 che avete e dopo fate aggiungi riferimento al servizio e invece della URL idicate c:\SISmod e caricare il file wsdl così modificato.
avatar
lucky2005
Utente Attivo

Messaggi : 69
Data d'iscrizione : 07.02.11
Località : Catania

Torna in alto Andare in basso

Re: Procedura testata per chi sviluppa in VB

Messaggio  lucky2005 il Gio Mar 31, 2011 4:52 pm

x mary69
Se hai notato noi stiamo testando nell'ambiente effettivo e siamo tutti in possesso del certificato effettivo.
Se non possiedi il certificato è impossibile provare i metodi che io ho esposto
avatar
lucky2005
Utente Attivo

Messaggi : 69
Data d'iscrizione : 07.02.11
Località : Catania

Torna in alto Andare in basso

Re: Procedura testata per chi sviluppa in VB

Messaggio  mary69 il Gio Mar 31, 2011 5:00 pm

Avviando IE ed inserendo l'url https://sisssl.sistri.it/SIS/services/SIS?wsdl ottengo la stessa risposta di quando cerco di aggiungere il riferimento web all'interno di visualstudio, e cioè

Il sito Web ha rifiutato di visualizzare la pagina Web
HTTP 403
Cause più probabili:
•Il sito Web richiede le credenziali di accesso.

Possibili operazioni:
Torna alla pagina precedente.

è possibile che mi manchi qualcosa?
Non c'è altro modi di avere il file wsdl?
Ciao

avatar
mary69
Membro della community

Messaggi : 12
Data d'iscrizione : 07.12.10

Torna in alto Andare in basso

Re: Procedura testata per chi sviluppa in VB

Messaggio  mary69 il Gio Mar 31, 2011 5:05 pm

x lucky2005
ho anch'io il certificato rilasciato per l'ambiente effettivo, e l'ho caricato in IE, lo vedo tra i vari certificati,
ho caricato anche il certificato di fonte attendibile 'RootCA Sistri', ma non riesco ad accedere con IE.

avatar
mary69
Membro della community

Messaggi : 12
Data d'iscrizione : 07.12.10

Torna in alto Andare in basso

Re: Procedura testata per chi sviluppa in VB

Messaggio  lucky2005 il Gio Mar 31, 2011 5:16 pm

mary69 il certificato originale rilasciato dal sistri non contiene le chiavi devi assemblarlo con openssl x windows comprese le chiavi inviate dal sistri e creare un certificato con estensione p12 . Io potrei inviarti il file SIS modificato ma se non risolvi l'accesso tramite il certificato non serve a nulla.
avatar
lucky2005
Utente Attivo

Messaggi : 69
Data d'iscrizione : 07.02.11
Località : Catania

Torna in alto Andare in basso

Re: Procedura testata per chi sviluppa in VB

Messaggio  mary69 il Gio Mar 31, 2011 5:30 pm

grazie lucky2005,

si avevo generato il file p12 così come era indicato in un post precedente, probabilmente ho sbagliato qualcosa lì.

Ho utilizzato openssl x windows, l'unica differenza è che non ho il file private.pem ma private.key (sempre nella stessa cartella Archivio sulla chiavetta)

Adesso provo a ricrearlo, mi confermi che il comando che uso è corretto?

openssl pkcs12 -export -in certificato.cer -inkey private.pem -out certificate.p12
avatar
mary69
Membro della community

Messaggi : 12
Data d'iscrizione : 07.12.10

Torna in alto Andare in basso

Re: Procedura testata per chi sviluppa in VB

Messaggio  mary69 il Gio Mar 31, 2011 5:43 pm

Ho creato il file p12, utilizzando openssl x windows, il file certificato.cer ed il file private.key presi dalla cartella archivio della chiavetta usb.

La creazione non ha dato alcun errore, ho rimosso il certificato da IE, e ho importato quello nuovo, e vedo il certificato senza problemi.
Ho chiuso IE e l'ho riaperto, ma purtroppo l'indirizzo https://sisssl.sistri.it/SIS/services/SIS?wsdl mi risulta
ancora inaccessibile.

Dove sbaglio?
avatar
mary69
Membro della community

Messaggi : 12
Data d'iscrizione : 07.12.10

Torna in alto Andare in basso

Re: Procedura testata per chi sviluppa in VB

Messaggio  lucky2005 il Gio Mar 31, 2011 5:54 pm

Ascolta mary69 lla tua procedura è corretta a questo punto non so se la differenza possa essere attribuita al file private io ho il file con estensione pem
avatar
lucky2005
Utente Attivo

Messaggi : 69
Data d'iscrizione : 07.02.11
Località : Catania

Torna in alto Andare in basso

Re: Procedura testata per chi sviluppa in VB

Messaggio  mary69 il Gio Mar 31, 2011 6:11 pm

Ok, allora ho riavviato il pc. (quando non si sa più che fare...)

Adesso in IE riesco ad accedere all'indirizzo https://sisssl.sistri.it/SIS/services/SIS?wsdl che mi risponde con il testo xml.

Ho selezionato tutto il testo, l'ho incollato in un editor, ho cambiato l'endpoint e l'ho salvato in un file con estensione .wsdl

Però adesso come posso aggiungere un riferimento ad un servizio, io ho solo la possibilità di aggiungere un riferimento web.
pale
avatar
mary69
Membro della community

Messaggi : 12
Data d'iscrizione : 07.12.10

Torna in alto Andare in basso

Finalmente

Messaggio  Massimo2000 il Gio Mar 31, 2011 6:48 pm

Finalmente sono riuscito a far funzionare GetVersioneSIS ... da non credere.

Quando chiamo il metodo, ho ancora il seguente problema : "Impossibile stabilire relazioni di trust per il canale sicuro SSL/TSL con l'autorità 'sisssl.sistri.it'".

Io l'ho risolto andando qui:
http://www.e-minds.it/blog/141/-net-instanziare-un-web-service-con-certificato-scaduto.aspx

Ho controllato il certificato e mi scade nel 2016 quindi non capisco. Se qualcuno mi riesce a spiegare il perchè?

Grazie ancora a lucky
Domani provo un altro metodo ...
avatar
Massimo2000
Membro della community

Messaggi : 20
Data d'iscrizione : 22.02.11

Torna in alto Andare in basso

Re: Procedura testata per chi sviluppa in VB

Messaggio  Massimo2000 il Gio Mar 31, 2011 6:54 pm

mary69 ha scritto:Ok, allora ho riavviato il pc. (quando non si sa più che fare...)
Però adesso come posso aggiungere un riferimento ad un servizio, io ho solo la possibilità di aggiungere un riferimento web.
pale

Per mary69
Se non riesci ad aggiungere un riferimento al servizio non c'è nulla da fare. Aggiungere il riferimento web non ti serve.
Io ho avuto lo stesso problema con Visual Studio 2005. Poi ho installato Visual Studio 2008 su una macchina nuova e ho risolto il problema.
Hai provato ad applicare la SP1?
avatar
Massimo2000
Membro della community

Messaggi : 20
Data d'iscrizione : 22.02.11

Torna in alto Andare in basso

Re: Procedura testata per chi sviluppa in VB

Messaggio  mary69 il Gio Mar 31, 2011 7:59 pm

Sto scaricando la SP1 di VS2008, ci vorranno alcune ore, poi installerò e vi farò sapere.
Per il momento grazie a tutti.
Surprised
avatar
mary69
Membro della community

Messaggi : 12
Data d'iscrizione : 07.12.10

Torna in alto Andare in basso

Re: Procedura testata per chi sviluppa in VB

Messaggio  lucky2005 il Mar Apr 05, 2011 5:31 pm

Nel primo post ho inserito il metodo SISexception per la gestione errori
avatar
lucky2005
Utente Attivo

Messaggi : 69
Data d'iscrizione : 07.02.11
Località : Catania

Torna in alto Andare in basso

Re: Procedura testata per chi sviluppa in VB

Messaggio  mary69 il Mar Apr 05, 2011 6:40 pm

Ho scaricato ed installato SP1, ed ancora non riuscivo ad aggiungere un riferimento al servizio.
Ho poi scoperto che il problema era il framework di destinazione, il progetto era per il 2.0, portandolo al 3.5,
ho potuto aggiungere il riferimento al servizio.

Adesso ho un problema con l'istruzione
obj1.ClientCredentials.ClientCertificate.SetCertificate(StoreLocation.CurrentUser, _
StoreName.My, X509FindType.FindBySubjectName,“CN=nome certificato”)


mi genera l'errore
Impossibile trovare il certificato X.509 utilizzando i criteri di ricerca seguenti: StoreName 'My', StoreLocation 'CurrentUser', FindType 'FindBySubjectName', FindValue 'CN=nome certificato'.

penso che l'errore possa essere nel nome certificato, ma il mio certificato non ha un nome, cosa devo mettere?
avatar
mary69
Membro della community

Messaggi : 12
Data d'iscrizione : 07.12.10

Torna in alto Andare in basso

Re: Procedura testata per chi sviluppa in VB

Messaggio  Contenuto sponsorizzato


Contenuto sponsorizzato


Torna in alto Andare in basso

Pagina 1 di 2 1, 2  Seguente

Torna in alto

- Argomenti simili

 
Permessi di questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum