pubblicare l'applicazione web in modo che tutto il codice dietro file vengono compilati in una DLL. In questo modo non possono vedere facilmente il tuo codice. Saranno comunque in grado di usare il reflection per vedere il codice usando strumenti come jetBrains dotPeeek.
opzione migliore ospitare il sito da soli ma come questo doesnt rispondere alla tua domanda qui ci sono alcune altre opzioni
1st Option
Se il cliente insiste sul che ospita il sito in cui sono concertate su possedere i dati quindi consentire loro di ospitare il sito e il database, ma inserire la funzionalità da un sito ospitato centralmente di cui si ha il controllo. Puoi persino fornire una API.
Fornisci al client un codice hash nel web.config e questo viene convalidato sul tuo sito. L'hash viene composto da:
- presalt
- l'indirizzo del servizio Web
- la data di scadenza
- cliente uniqueidentifier
- qualsiasi altra informazione che si desidera
- postsalt
Criptare la richiesta e la risposta del servizio web a d inviare tramite ssl.
L'hash del client verrà inviato nella richiesta. Costruisci un nuovo hash con gli stessi campi e convalida questo contro l'hash che hai ricevuto dal client. se non è valido non fornisci la funzionalità.
Google Maps richiede di registrarsi e ottenere un codice hash in quanto possono quindi interrompere l'utilizzo dell'API di Google Maps in caso di abuso.
seconda opzione
Un'altra opzione sarebbe quella di impostare un servizio di chiamata web a un sito che si ospita.
L'applicazione Web compilata distribuita crea quindi un hash utilizzando la risposta dal servizio Web e corrisponde all'hash generato con l'hash inviato nella risposta.
Ciò significa che se il client blocca il traffico verso il proprio servizio Web o tenta di falsificare la risposta, l'applicazione smetterà di funzionare.
Aggiungete inoltre un po 'di logica per avvertire se hanno provato a simulare la risposta. Questo ovviamente non funzionerà se bloccherà la chiamata al tuo servizio web.
Non si dovrebbero includere i sali qui poiché il client potrebbe leggerli se hanno decompilato il codice.
terza opzione Aggiungi due campi al web.config:
- il codice hash che avete generato per il cliente
- una data di scadenza.
Se il cliente modifica la data di scadenza per concedere loro più tempo, non verrà convalidato e verrà bloccato.
Opion 2 e 3 consentirebbero al client di decodificare l'hashcode se lo volessero.
=====================================
io in realtà non vedere la necessità, ma se vuoi puoi usare alcuni strumenti di obsfucation come menzionato nell'altro post per rendere più difficile per il client leggere il tuo codice. Ma anche se possono leggere il tuo codice, non dovrebbero essere in grado di creare un codice hash valido da soli.
La prossima volta, fornire l'applicazione in DLL compilate e quindi fornire il codice sorgente quando viene ricevuto il pagamento completo. –
@RobertHarvey Compiled Dll è un altro aspetto.I file pubblicati sono già in esecuzione alla fine. Ora il progetto è quasi finito e per prima cosa hanno bisogno del codice sorgente, poi rilasciano il pagamento. –
Se si sta dando loro il codice sorgente (anche prima di acquistarlo), cosa impedirebbe loro di disattivare la prova? Chiunque potrebbe semplicemente entrare nel codice sorgente e rimuovere il controllo. Certo, dovrebbero essere ricompilati, ma suona strano. – gunr2171