web-dev-qa-db-fra.com

Crypter les cookies dans ASP.NET

Je souhaite crypter les cookies dans ASP.NET.

J'ai suivi la méthode dans cet article , mais il a l'inconvénient d'utiliser la réflexion sur une méthode interne. Cela l'a amené à être signalé dans une revue de code - il n'est pas à l'épreuve du temps car l'implémentation interne peut changer.

Existe-t-il une méthode avec des fonctionnalités identiques qui ne nécessite pas l'utilisation de cryptage sur des méthodes internes?

J'utilise .NET Framework 3.5 SP1 (je suppose que je ne peux pas changer les versions du framework)

23
frankadelic

Vous n'avez plus besoin de rouler le vôtre.

.Net 4.5 a MachineKey.Protect() et MachineKey.Unprotect().

System.Web.Security.MachineKey

.Net 4.0 a MachineKey.Encode() et MachineKey.Decode(). Vous devez simplement définir MachineKeyProtection sur "Tous". Ceux-ci sont maintenant obsolètes et vous devriez utiliser les plus récents si vous avez 4.5.

Notez que si vous essayez de les utiliser dans quelque chose comme une application console au lieu d'ASP.Net, il semble générer une nouvelle clé à chaque redémarrage de l'application. Je ne l'ai vérifié que rapidement, mais dans ILSpy, il semble qu'il génère ses propres valeurs par défaut si le paramètre d'application approprié est manquant.

Je n'ai pas pu trouver d'équivalent non-ASP.Net.

35
mattmanser