19 messaggi dal 30 giugno 2010
Ho bisogno di scaricare un file xml da un applicazione web che si trova su un server dedicato di aruba in una cartella predefinita scelta da me tramite il codice vb.net sul pc in locale.
Successivamente devo firmare manualmente questo file, quindi lascio l'applicazione e utilizzo il software di aruba key.
Una volta firmato il file, voglio ritornare nell'applicazione web e con la pressione di un pulsante riprendere il file firmato.
Quindi, il file firmato deve essere trasferito sul server senza che l'utente debba selezionarlo ma in modo automatico.
L'ideale sarebbe quello di firmare il file direttamente dal server ma ho incontrato enormi difficoltà.
L'applicazione è in asp.net 3.5.
Potete aiutarmi?
11.884 messaggi dal 09 febbraio 2002
Contributi
ciao,

fmilitello ha scritto:

Quindi, il file firmato deve essere trasferito sul server senza che l'utente debba selezionarlo ma in modo automatico.

Non è possibile. Per salvaguardare la riservatezza dei suoi utenti, il browser non dà la facoltà ad una pagina web di selezionare dei file arbitrari dal disco fisso. Neanche se questi file gli erano noti, perché scaricati in precedenza.

Quel che puoi fare è scrivere un'applicazione windows, che ha ovviamente la facoltà di esaminare i file sul disco perché va in esecuzione con i pieni privilegi dell'utente. Dovrà comunicare con il server per scaricare e ricaricare i file, quindi scrivi anche un servizio WCF o una ASP.NET Web Api per realizzare questa comunicazione. Puoi anche fare un sistema di comunicazione non standard, basato su pagine .aspx o Handler .ashx, ma richiederà più lavoro e andrà adeguatamente testato, quindi te lo sconsiglio.

ciao,
Moreno
Modificato da BrightSoul il 05 settembre 2014 08.40 -

Enjoy learning and just keep making
19 messaggi dal 30 giugno 2010
Prima di tutto ti ringrazio per avermi risposto. Mi sono accorto solo oggi della risposta e ci stavo lasciando le speranze.
Vediamo se ho capito bene.
Tu mi consigli di fare una applicazione windows form da installare nel computer in locale la quale ha il compito di prelevare i files da firmare dal server e poi, dopo averli firmati, di rimetterli sul server.
Considerato che le due applicazioni non comunicano fra loro, dovrei creare sul server una cartella temporanea da riempire e svuotare all'occurrenza, in modo che l'applicazione windows in locare preleva tutti i files che trova in questa cartella.
Poi mi dici di creare un servizio WCF o una ASP.NET Web Api nell'applicazione windows. Per la verità non ho mai utilizzato servizi WCF o ASP.NE_T Web. Invece ho utilizzato in passato WebService.asmx e Handler.ashx: sono simili?
Puoi darmi qualche spunto o esempio per il trasferimento dei file tramite il servizio WCF?
Ma non c'è un modo che dall'applicazione web possa aprire l'applicazione in locale in windows?
Se ti ho fatto troppe domande, limitati magari solo al servizio WCF.
Grazie in anticipo.
Ciao.
11.884 messaggi dal 09 febbraio 2002
Contributi
ciao,

fmilitello ha scritto:
Tu mi consigli di fare una applicazione windows form da installare nel computer in locale la quale ha il compito di prelevare i files da firmare dal server e poi, dopo averli firmati, di rimetterli sul server.

Esatto.

fmilitello ha scritto:

Poi mi dici di creare un servizio WCF o una ASP.NET Web Api nell'applicazione windows.

No. Il servizio ti consiglio di crearlo nell'applicazione web. L'applicazione Windows, invece, andrà ad inviare richieste periodiche a quel servizio per sapere se ci sono nuovi file da scaricare. Se ci sono, li scaricherà e mostrerà un avviso all'utente, proprio come quelli che di solito appaiono quando arriva una nuova email.

Ti consigliavo di realizzare un servizio con WCF perché ti consentirebbe di realizzare la soluzione ideale, che consiste di un servizio duplex (l'applicazione web chiama l'applicazione windows per fare il push dei nuovi file e, viceversa, l'applicazione windows chiama l'applicazione web per restituire i file firmati).

Ci sarebbero delle considerazioni da fare (anche a livello di rete), ma non mi spingo oltre perché puoi benissimo realizzare un servizio ASMX, dato che ci hai già lavorato. Te la caverai con il polling: ogni minuto l'applicazione per windows chiamerà il servizio ospitato nell'applicazione web e si farà dare i nuovi files.

fmilitello ha scritto:

Ma non c'è un modo che dall'applicazione web possa aprire l'applicazione in locale in windows?

Sì, certo, registrando un URL protocol personalizzato, ma che te ne fai? L'applicazione per windows già scaricherà proattivamente tutti i file da firmare. L'utente dovrà semplicemente attendere che gli si presenti la notifica di cui ti parlavo prima e andare a prendere il file che gli si è materializzato in una cartella locale, sul suo PC.

fmilitello ha scritto:

Per la verità non ho mai utilizzato servizi WCF o ASP.NET Web API

Cerca i contenuti qui su Aspitalia (articoli e video), sono tecnologie interessanti. Vale la pena di investire un po' di tempo in autoformazione perché ti renderà più produttivo.

ciao,
Moreno

Enjoy learning and just keep making
11.884 messaggi dal 09 febbraio 2002
Contributi
Aggiungo questo a proposito della firma: mi sembra di aver capito che il software di Aruba non ti permette di scriptarlo da linea di comando.
Puoi comunque simulare l'interazione dell'utente da interfaccia grafica usando questo programma, che ti permette di simulare la pressione di tasti sulla tastiera.
http://www.autohotkey.com/
Modificato da BrightSoul il 10 settembre 2014 14.00 -

Enjoy learning and just keep making
19 messaggi dal 30 giugno 2010
Ti ringrazio dei tuoi suggerimenti. Mi hai chiarito diverse cose e soprattutto adesso ho un percorso da seguire e so cosa devo approfondire.
Non ho capito se bisogna dare un voto alle tue risposte. Se si fammi sapere. Ciao

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.