Domanda

Ho una domanda (C #) e sto affidato il compito di mettere qualche semplice sistema di licenze in esso. Mentre faceva tutto ciò ho bisogno di salvare le informazioni da qualche parte nel computer per limitare l'uso.

Ho bisogno di salvare una data e un contatore.

Come e dove dovrei salvare le informazioni che, su Windows Vista, doesnt richiede privilegi amministrativi per l'esecuzione? (Il che significa risparmiare in System32, Programmi, HKEY_LOCAL_MACHINE non è un'opzione.)

Si prega di non inondare le risposte con "non farlo" o "sarà incrinato in ogni caso". Faccio capire quelle logiche. Ho solo bisogno di fare qualsiasi cosa meglio che può essere fatto per questo scopo.

È stato utile?

Soluzione

Si consiglia di utilizzare un componente di licenza di terze parti, come ad esempio XHEO - non c'è bisogno di reinventare la ruota .

Se si sta ancora tenuti a scrivere il proprio sistema di licenze, è possibile utilizzare le directory del profilo dell'utente o la HKEY_CURRENT_USER ramo.

Altri suggerimenti

si usa un file di licenza XML firmato. Si tratta di un semplice file XML, che visualizza ciò che l'utente ha acquistato.

La cosa bella di questo è che è futuro compat. Si può facilmente aggiungere una caratteristica di prodotto o linea di prodotti, le date di scadenza, e gli attributi funzione.

E 'facile per il nostro sito commerciale per creare e le licenze dei pacchetti on demand, tanto per essere sicuro le chiavi private mai uscire. I pro i contro outway qui per noi, e il problema più grande che non possiamo eludere, è semplicemente affrontare il file di licenza.

qui è un file XML di esempio

<?xml version="1.0" encoding="utf-8"?>
<ProductName>
  <License>
    <LicenseId>20025fb9-5349-46d4-a530-55b0295beaaa</LicenseId>
    <CustomerName>Scott.Cate@Example.com</CustomerName>
    <MajorVersion>2008</MajorVersion>
    <Product>Friendly Display Name</Product>
    <ProductType>Enterprise</ProductType>
    <Features>
      <!--Add features here-->
    </Features>
    <Expires>0001-01-01T00:00:00</Expires>
  </License>
  <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
    <SignedInfo>
      <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
      <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
      <Reference URI="">
        <Transforms>
          <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
        </Transforms>
        <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
        <DigestValue>u3{..........}U2jo=</DigestValue>
      </Reference>
    </SignedInfo>
    <SignatureValue>QFg1kI{...............}DwDIE=</SignatureValue>
  </Signature>
</ProductName>

E usiamo semplice .NET costruito in API per fare la firma XML, e la conferma che è bruciacchiato e valido.

cose che mi piacciono ...

.. E 'facile da leggere. (Per il supporto tecnico) .. E 'facile da sostituire .. Facile da riporre, nel sistema di file, o nel nostro caso, il database, per un facile accesso dentro e fuori l'interfaccia utente. (Abbiamo un posto in aggiornamento / aggiornamento del sistema) .. è facile da aggiornare. Abbiamo un servizio che prende la vostra vecchia licenza, e dopo la convalida, offre l'aggiornamento dei prezzi in base a ciò che è già stato acquistato. Poi il sistema di commercio registra i file di licenza vecchi e nuovi per riferimento.

Le cose che non mi piacciono ...

.. può essere copiato, rubato facilmente

per le imprese usiamo sempre la directory radice_app / LICENZA.

usiamo anche una propria soluzione personalizzata, ma è piuttosto banale crittografia dei dati e la verifica del registro di licenza per la manipolazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top