2009-08-07 10 views
6

Existe-t-il un moyen de stocker les informations d'identification dans une application Windows .NET, qu'il s'agisse d'une API intégrée ou d'un algorithme de chiffrement recommandé? Dans le même esprit que Tortoise SVN, Spotify et Skype.Enregistrement des informations d'identification utilisateur dans une application Windows

Modifier: Mon intention est d'utiliser un service Web qui renvoie un jeton de son service d'authentification. Les autres services acceptent alors ce jeton en tant que paramètre. Cependant, le jeton expire au bout de 30 minutes, le stockage du jeton lui-même est inutile pour cette tâche.

+0

Juste au cas où vous ne l'avez pas déjà rencontré: [Conception d'un système d'authentification: un dialogue en quatre scènes] (http://web.mit.edu /kerberos/www/dialogue.html) est un excellent article sur les principes de Kerberos; Je pense que cela peut être intéressant dans le contexte de la création de votre service d'authentification. – Regent

Répondre

12

Il semble que l'utilisation de ProtectedData (qui enveloppe le Windows Data Protection API) est ma meilleure option, car il a l'option de crypter en fonction de l'utilisateur actuellement connecté.

byte[] dataToEncrypt = new byte[] { ... }; 

// entropy will be combined with current user credentials 
byte[] additionalEntropy = new byte { 0x1, 0x2, 0x3, 0x4 }; 

byte[] encryptedData = ProtectedData.Protect(
    dataToEncrypt, additionalEntropy, DataProtectionScope.CurrentUser); 

byte[] decryptedData = ProtectedData.Unprotect(
    encryptedData, additionalEntropy, DataProtectionScope.CurrentUser); 
0

La meilleure pratique est de ne jamais stocker les informations d'identification, mais uniquement les jetons Kerberos ... toutes les ressources ne permettent malheureusement pas cette authentification.

+0

J'aurais dû être plus précis. Voir ma mise à jour –

0

Il y a beaucoup de mots de passe recomendations re dans MSDN. Vous aurez besoin de trouver un wrapper géré pour CryptProtectData

+1

System.Security.Cryptography.ProtectedData * est * un wrapper géré pour CryptProtectedData. Voir ma réponse ci-dessus. –

Questions connexes