2010-08-06 4 views
2

J'utilise C# et .NET 2.0. Mon application a besoin d'un moyen de vérifier les différents utilisateurs, donc je vais utiliser id matériel, mais je vis que je peux utiliser seulement:Aide avec l'ID de matériel

  • adresse mac - facilement modifiable et non tout le monde l'ont // NO
  • processeur id - en utilisant WMI retourne une valeur pour le modèle cpu, il est pas unique // NO
  • série de la carte mère - pas toutes les cartes mères l'ont // NO
  • volume Windows de série - Je ne sais pas si ce sera modifié sur Windows réinstaller et le format du volume

Y at-il quelque chose que je n'ai pas mentionné pour hwid? Je veux quelque chose que tout le monde a et il ne sera pas effacé lors de la réinstallation de Windows. Sinon, je devrais utiliser le numéro de série du volume de Windows.


EDIT: Des commments je pense qu'il est préférable d'utiliser le disque dur id. Comment l'obtenir? EDIT2: Je viens de lire que les lecteurs SCSI n'ont pas de série. Est-ce vrai?

FINAL EDIT: J'utilise déjà le lecteur de disque racine sur mon application. Ça marche plutôt bien. Merci a tous.

Répondre

2

HDD Numéro de série: unique, inchangeable, et tout le monde l'a.

pas une option parfaite mais ...

+0

Vous voulez dire le disque dur série, pas le disque logique (volume) série? Si oui, comment l'obtenir? – blez

+0

Eh bien, si l'on change le disque dur, vous perdez celui-ci ... –

+0

Mais comment l'obtenir? – blez

1

Eh bien, j'irais pour plus d'un identifiant. Si vous combinez suffisamment d'identifiants, ils vous donneront assez d'unicité.

EDIT: vous pouvez également opter pour la place sur le disque dur de votre programme a été installé trop (Platter, cylindre etc.)

+0

Et puis si l'utilisateur change seulement un des composants, je devrai renouveler sa licence. – blez

+0

Eh bien pas vraiment. Si vous avez assez d'identifiants, vous pouvez toujours identifier l'utilisateur. –

+0

Oui, mais l'idée est de protéger la copie de l'information de l'utilisateur. Pour empêcher les fuites de l'utilisateur/du numéro de série – blez

0

Pourquoi souhaitez-vous utiliser le matériel Id? J'irais avec une sorte de sécurité basée sur les formulaires (ou basée sur AD), moi-même. Cependant, étant donné que: Le HWID est ce qui identifie cette configuration informatique particulière: il est conçu pour changer s'il y a des changements du système. Vous mentionnez que Windows Volume Serial peut changer lors de la réinstallation et du reformatage, mais votre logiciel ne doit-il pas être réinstallé à ce stade? HDD Serial pourrait également changer si, disons, l'utilisateur change de disque dur pour une raison quelconque. Si vous devez utiliser HWID, vous devrez probablement sélectionner une (ou plusieurs) des options disponibles pour fournir l'unicité et le code autour, ou informer les utilisateurs, des modifications matérielles nécessitant une réinstallation et/ou reconfigurer de votre logiciel.

+0

Qu'est-ce que la sécurité basée sur les formulaires (ou sur la base de l'AD)? – blez

+1

"Formulaires basés" fait référence à l'idée (généralement utilisée sur les applications Web, mais vous pouvez également l'implémenter sur les applications Windows) que vous devez vous connecter (via un formulaire) pour utiliser une application. AD fait référence au répertoire actif; c'est-à-dire, se connecter au serveur Active Directory d'une entreprise pour récupérer les autorisations des utilisateurs. AD nécessite que Active Directory (ou quelque chose de similaire) soit installé, la sécurité des formulaires nécessite une sorte de magasin de données (même si c'est local à la machine en cours d'utilisation). – AllenG

+1

Je préfère l'ID de matériel. – blez

0

Vous devez penser à la sécurité ou uniquement à la fiabilité, c'est-à-dire que l'utilisateur souhaite modifier votre vérification d'identité? Si vous avez besoin de (haute) sécurité, achetez l'un des produits de "protection logicielle", c'est beaucoup moins cher que de le faire vous-même.

Aucune exigence de sécurité élevée n'est requise? => Une autre possibilité consiste à utiliser le SID utilisateur ou machine. Vous devez prendre en compte que votre application est exécutée elvated => L'utilisateur est alors administrateur. Dernier point mais non le moindre: écrire une valeur aléatoire de quelques octets dans le registre (éventuellement à différents endroits) sous HKEY_CURRENT_USER et les utiliser comme un ID.