Ho creato un'applicazione di Windows Form che voglio limitare a duplicare. Voglio che questa applicazione sia portatile, quindi vorrei permetterne il trasferimento. Come potrei fare questo senza gestirlo attraverso un server remoto?
Questo è un obiettivo piuttosto elusivo.
Più stretto è il legame con la tua applicazione a una determinata località, meno felice sarà il tuo cliente con te ogni volta che si verificherà l'inevitabile manutenzione del computer. E viene abbastanza spesso.
Un trucco consiste nel legarsi a particolari all'interno dell'hardware del dispositivo. MS Windows XP e altri prodotti MS sono un buon esempio di questo approccio. Questo di solito richiede una telefonata a casa o una chiamata ad un altro approccio.
Un altro metodo è di avere il telefono dell'applicazione a casa con il codice di registrazione per ricevere un segnale di sblocco. Le licenze aziendali Win 7 e Win 2008 utilizzano questo approccio. Anche alcune altre applicazioni lo fanno. Di nuovo, generalmente, è necessario un server remoto disponibile per essere chiamato. Tuttavia, MS consente alle aziende di configurare i propri server di licenza.
I dongle sono ancora un altro metodo. Sono abbastanza costosi per iniziare, e non rallentano i veri cracker (o è quel crackerz?).
Potresti sempre limitare i codici di attivazione del tempo, ad esempio per 24 ore o una settimana. Allo scadere del periodo di tempo, deve essere emesso un nuovo codice.
Ad un certo punto, devi aver fiducia che i tuoi utenti non ti derubano. Se ci pensi, ti stanno fidando di dare loro un prodotto di qualità, quindi non è ingiusto che una parte di quella fiducia venga ricambiata.
Anche se questa non è una soluzione, può aiutare a far luce su alcune delle minacce e le tue opzioni. Come @ GlenH7 dice "Questo è un obiettivo piuttosto elusivo". Devo dire qui che non sono un estratto in questo campo, quindi segui il consiglio con un pizzico di sale!
È possibile utilizzare la tecnica di associazione del codice software al numero di serie del volume del disco rigido. Gli svantaggi sono:
1 - Se il tuo utente riformatta il disco, sarà probabilmente necessario contattarti di nuovo a meno che non utilizzi lo stesso vecchio numero di serie.
2 - Esistono programmi che consentono la modifica del numero di serie dell'hard disk. Quindi, se il tuo utente lo sa, può distribuire il software e usare questo programma per ingannare il tuo programma. Per evitare ciò, potresti aver bisogno di maggiori informazioni sull'hardware per incorporarlo nel tuo codice. Potresti quindi voler utilizzare un'utilità per fornire tali informazioni come CPUID-PRO .
L'altra minaccia è che l'utente finale potrebbe essere in grado di decodificare il codice dagli assembly e ottenere anche lo schema db. Non sono sicuro che ci siano modi semplici ed efficaci contro questo.
Esistono numerosi prodotti di protezione della licenza .NET che ti aiuteranno a proteggere contro l'utilizzo illegale della tua applicazione.
La maggior parte di questi strumenti funziona con un server licenze e utilizza il concetto di attivazione online. Ciò significa che la prima volta che l'utente finale tenta di utilizzare l'app, è necessario che si connetta a un server licenze per attivare la propria licenza. Questo processo invierà un identificatore univoco del computer al server e il server genera una chiave di licenza univoca legata alla macchina che viene quindi inviata al client. Questa chiave viene utilizzata successivamente per convalidare che il cliente è autorizzato a utilizzare la tua applicazione. Ciò significa anche che una connessione Internet è realmente necessaria solo durante il processo di attivazione iniziale. È sempre una buona idea, tuttavia, chiamare a casa regolarmente per verificare se una licenza è stata revocata.
Un prodotto con cui ho familiarità con quanto sopra è Quick License Manager di Soraco ( link ).
Spero che questo aiuti.
Leggi altre domande sui tag licensing .net application-design desktop-application