Protezione DLL - Caricamento solo se abilitata

lunedì 27 agosto 2007 - 10.33

JohnAsh Profilo | Junior Member

Ciao a tutti,

non so se questa è la stanza giusta, ma mi sembrava la più adatta .. Ho una domanda da porvi in merito alla gestione delle DLL in un'applicazione che ho sviluppato.

In pratica, ho creato un progetto base che rappresenta l'applicazione principale (le funzioni essenziali) ed ho creato tante DLL per quanti sono i moduli che desidero avere.

Ora mi trovo di fronte alla necessità di dover installare l'applicazione sul PC di un cliente, che non ha bisogno di alcuni moduli. Perfetto, non includo le DLL. Ma la cosa mi sembra abbastanza "arronzata" .. nel senso che basterebbe copiare la DLL del modulo x da un PC che l'ha installata per far implementare le funzioni anche a chi non le ha comprate.

Esiste una soluzione al mio problema? Avevo pensato al caricamento dinamico delle librerie all'avvio dell'applicazione, inserendo nel codice dei controlli. Ma come potrei fare a sapere se il cliente è autorizzato al caricamento di un determinato modulo?

Grazie in anticipo.

Saluti!

Wamba Profilo | Expert

Una soluzione potrebbe essere il classico uso del registro per memorizzare una chiave. Se la chiave è basata su un qualche elemento del pc, ad esempio l'id dell HD o simili puoi stare relativamente tranquillo. Ovviamente su quest'argomento ci sarebbe da scrivere (ed è stato scritto) non poco, ma non sono certo la persona più adatta.
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba

SSUPERPIPPO Profilo | Guru

Io per le mie applicazioni normalmente gestisco la cosa nell'applicazione principale.
Adesso non so se hai implementato delle procedure per l'attivazione del prodotto.

Io ho creato una procedura di attivazione (che avviene in seguito all'installazione) attraverso la quale viene identificato il tipo di installazione eseguita (e quindi quali moduli il cliente potrà utilizzare), informazione che viene inserita in una chiave di registro.

A questo punto il programma, ogni volta che parte, controlla questa chiave di registro e fa partire solamente i moduli interessati.

Ora... puoi inserire questa informazione anche in un file di configurazione .ini o magari xml, magari crittarla in modo che non sia facilmente modificabile... vedi tu.
Non è una soluzione inespugnabile ma comunque più sicura che non legarsi alla presenza o meno di DLL.

Ciao

Alessandro

http://blogs.dotnethell.it/alebadalin

JohnAsh Profilo | Junior Member

Vi ringrazio moltissimo. Mi siete stati veramente d'aiuto.. Non cerco la sicurezza assoluta, tanto bypassano le protezioni dei programmi Microsoft figuriamoci se non possono farlo sul mio se volessero :-) Voglio solo qualcosa che mi garantisca un minimo di sicurezza .. Per non perdere soldi e non passare per uno stupido :-)

Grazie ancora

Saluti

SSUPERPIPPO Profilo | Guru

Di nulla, ciao

Ale

P.S.: Clicca su Accetta così chiudiamo il post. grazie.

http://blogs.dotnethell.it/alebadalin

Wamba Profilo | Expert

Di niente
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5