2015-06-02 10 views
6

Abbiamo un'applicazione C# e dobbiamo proteggerla contro la copia illegale. Quindi abbiamo deciso di utilizzare la libreria Portable.Licensing per proteggere il nostro sistema.Portable.Licensing come legare una licenza a un PC

Come posso legare una licenza all'ID hardware in Portable.Licensing, in modo che solo un PC specifico possa utilizzare la licenza?

risposta

7

È possibile generare un hash univoco sul nome del PC, informazioni sull'hardware, ecc. E aggiungere questo hash come Additional Attribute durante la creazione della licenza.

Esempio di creazione di licenza:

var license = License.New() 
    .WithUniqueIdentifier(Guid.NewGuid()) 
    .As(LicenseType.Standard)  
    .WithMaximumUtilization(1) 
    .WithAdditionalAttributes(new Dictionary<string, string> 
           { 
            {"HardwareId", "........"} 
           }) 
    .LicensedTo("John Doe", "[email protected]") 
    .CreateAndSignWithPrivateKey(privateKey, passPhrase); 

Per convalidare l'attributo è possibile implementare il proprio metodo di estensione di validazione o semplicemente utilizzare l'esistente AssertThat(). Esempio: [1]

La generazione di un ID hardware univoco non rientra nell'ambito delle licenze portatili.

[1] https://github.com/dnauck/Portable.Licensing/blob/develop/src/Portable.Licensing/Validation/LicenseValidationExtensions.cs#L100

+0

come convalidare? –

1

È possibile chiamare AsserThat metodo:

license.Validate() 
.AssertThat(lic => lic.ProductFeatures.Get("HardwareId") == "133456", new GeneralValidationFailure() { Message="Invalid Hardware.", HowToResolve="Contact administrator"});