2011-07-21 4 views
5

Par défaut, le paramètre de la touche machine est généré automatiquement et par application (AutoGenerate, IsolateApps). MSDN indique que la clé de déchiffrement et la clé de validation sont basées sur l'ID de l'application Web. J'héberge deux sites ASP.NET MVC 2 sur mon serveur IIS 7, mais j'ai découvert que les clés de la machine sont les mêmes. J'ai vérifié cela en utilisant la réflexion pour voir la propriété ValidationKeyInternal et DecryptionKeyInternal. Je l'ai également testé en générant un cookie jeton anti-falsification sur un site et en le transmettant à l'autre et le cookie peut être lu. Après essai et erreur, j'ai trouvé que la clé changerait si l'identité du pool d'applications changeait. Les deux sites ont les mêmes clés car ils s'exécutent sous les informations d'identification du service réseau. Une fois que je modifie l'identité du pool d'applications d'un site, ils commencent à avoir différentes clés de validation/chiffrement.Génération automatique de clé machine dans ASP.NET

Cependant, après avoir déployé les deux sites sur un autre serveur, j'obtiens toujours les mêmes clés machine même après avoir changé l'identité du pool d'applications. Les deux serveurs ont la même configuration matérielle et logicielle.

Je voudrais savoir s'il y a une référence pour la logique réelle de la façon dont la clé machine est générée sous AutoGenerate, IsolateApps. Sur le Web, de nombreux articles parlent de la définition de la même clé machine dans un scénario de batterie de serveurs Web. Mais j'ai rencontré un problème du côté opposé. La génération de clé automatique par application Web ne semble pas fonctionner correctement. Y at-il quelqu'un qui a le même problème avant?

+0

Ce que vous décrivez est atypique. D'après mon expérience, cela a fonctionné comme annoncé. J'ai 2 applications fonctionnant dans le même pool d'applications partageant les formulaires auth. À moins que je ne mette la machinkey à la même place, ils ne peuvent pas partager les tickets. –

+0

Je n'aurais jamais cru que ça ne marcherait pas avant d'avoir rencontré le problème. La douleur est que j'ai besoin de trouver une explication pour ce qui s'est passé sur les deux serveurs. – intangible02

Répondre

0

Avez-vous un paramètre web.config qui peut remplacer le paramètre IIS? Cela pourrait être un facteur dans ce cas, comme si vous dites aux serveurs d'utiliser des clés spécifiques, alors ils peuvent le faire.

+0

Si j'utilise la console de gestion IIS pour modifier les paramètres, la modification est conservée dans web.config. Ils sont cohérents. Cela signifie également que ce que je vois dans la console de gestion IIS est basé sur les résultats consolidés du fichier de configuration hieharchy. En passant, j'ai fait le test en hébergeant le projet dans IIS et le serveur web de développement Visual Studio. – intangible02

Questions connexes