PDA

View Full Version : Asp.net C# e ActiveX


sk8ne
09-12-2009, 17:02
Avrei la necessità di fare un applicativo che giri su Browser(IE) per raccogliere una serie di informazioni sull'hardware dei PC presenti in una rete.

La mia idea era quella di fare un applicativo tipo questo:
http://www.codeproject.com/KB/system/GetHardwareInformation.aspx
(ma molto più semplice, in realtà mi serve conoscere solo processore e ram)

però inserendolo in una .dll per crearlo embedded in una pagina aspx come viene spiegato qua:
http://www.c-sharpcorner.com/UploadFile/dsandor/ActiveXInNet11102005040748AM/ActiveXInNet.aspx

Solo che non riesco a farlo funzionare ... ovviamente ci devono essere delle limitazioni nell'uso via browser che però non riesco ad individuare.

Tra l'altro in debug non mi funziona quindi devo ogni volta pubblicarlo per vedere cosa succede e soprattutto non riesco, appunto, a fare un debug dell'applicativo...

Qualcuno ha già fatto una cosa del genere e mi sa aiutare? Magati ho preso una strada che non porta da nessuna parte e c'è un altro modo per approcciare la questione ...

sk8ne
09-12-2009, 17:12
Domenticavo: se metto tutto in try catch mi viene visualizzato l'errore

L'assembly non consente chiamanti parzialmente attendibili.

tomminno
09-12-2009, 17:20
Prova a dare un'occhiata qui (http://msdn.microsoft.com/en-us/library/system.security.allowpartiallytrustedcallersattribute.aspx)

sk8ne
09-12-2009, 17:32
Sono appena uscito da quella pagina ma non ne ho cavato un ragno dal buco ...

tomminno
09-12-2009, 19:51
Sono appena uscito da quella pagina ma non ne ho cavato un ragno dal buco ...

Ovvero? Che problemi hai?
Hai provato a partire da quell'esempio per poi via via inserire il tuo codice?

sk8ne
10-12-2009, 10:24
Partendo dall'esempio funziona tutto, non appena nella dll inserisco del codice che interagisce con il PC (basta un qualsiasi comando che vada in qualche modo ad interrogare il PC) mi dà l'errore di cui sopra.

Il fatto è che non so se il problema è dovuto all'assembly del progetto winform o a quella del progetto web ...

Nella pagina della msdn c'è scritto:

To run this test control you must create a strong name key, snkey.snk, and
a code group that gives full trust to assemblies signed with snkey.snk

Mi pare di avere fatto tutto il richiesto ma non funzincher ... Magari provo a ricreare l'esempio che mettono sulla MSDN .. boh

tomminno
10-12-2009, 13:16
Qui (http://msdn.microsoft.com/en-us/library/aa3dtctw.aspx) spiega come creare un gruppo. Chiaramente lo devi fare su ogni client su cui pensi di usare il tuo ActiveX.

sk8ne
10-12-2009, 17:27
Urco .. ma non c'è un modo per fare che compaia come dappertutto l'avviso di ActiveX che basta dargli "ok" e funziona tutto?

tomminno
10-12-2009, 17:42
Urco .. ma non c'è un modo per fare che compaia come dappertutto l'avviso di ActiveX che basta dargli "ok" e funziona tutto?

Se non lo fai in .NET si :)
Il tuo ActiveX è potenzialmente molto pericoloso quindi il .NET ti obbliga a specificare esplicitamente sulla macchina che quello che stai cercando di fare è lecito.
Sicuro, ma scomodo.

sk8ne
11-12-2009, 17:00
Ok
Allora per adesso risolvo con un applicazione standalone da scaricare che si aggancia ad un web service su un sito nella rete ...

Ma più avanti potrebbe servirmi. Cosa dovrei usare per sviluppare un activex "normale" che per essere eseguito non abbia bisogno di mille modifiche sui client e soprattutto che non necessiti del framework installato? Visual C++? O magari devo "tornare" al vecchio VB?

tomminno
12-12-2009, 16:32
Ok
Allora per adesso risolvo con un applicazione standalone da scaricare che si aggancia ad un web service su un sito nella rete ...

Ma più avanti potrebbe servirmi. Cosa dovrei usare per sviluppare un activex "normale" che per essere eseguito non abbia bisogno di mille modifiche sui client e soprattutto che non necessiti del framework installato? Visual C++? O magari devo "tornare" al vecchio VB?

Io ti consiglio C++ anche solo per il fatto che VB6 è morto da 11 anni.
Però prima andrebbe verficato che quello che vuoi fare è effettivamente possibile con il Protect Mode di Vista.
Una guida potrebbe essere questa: http://www.codeproject.com/KB/vista-security/PMSurvivalGuide.aspx
e questa:
http://msdn.microsoft.com/en-us/library/bb250462%28VS.85%29.aspx

sk8ne
13-12-2009, 16:47
Prima di addentrarmi nella sicurezza avrò la necessità di studiarmi un po' di C++ che non ci ho mai lavorato.
Conosci qualche link dove posso trovare un paio di semplici esempi sullo sviluppo di semplici ActiveX fatti con VS2008 e visual C++?

marianoross
15-12-2009, 15:12
Vedi questo link che parla su qualcosa per l'attendibilità dell'Activex: http://www.dreamincode.net/forums/showtopic38890.htm