\0_ Asp.net, Ikoula et authentification Forms
mardi 12 février 2008
Symptome : vous disposez d'un hébergement MSDN chez Ikoula, et vous y avez installé un site en Asp.net qui utilise l'authentification Forms. Après vous être identifiés sur le site (quand ça fonctionne), votre session se termine brutalement après un temps aléatoire (mais compris dans les 5 minutes).Vos logs vous indiquent :
- Des erreurs de validation de viewstate (Validation of viewstate MAC failed...)
- Des CryptographicException (Padding is invalid and cannot be removed...), en général sur WebResource.axd
Solution : renseigner vous-même dans le web.config les clés utilisées pour encrypter/décrypter les données qui transitent entre le client et le serveur. Voici une page qui génère le tag qui va bien (cette page provient d'un article sur la machine key), prêt à être copié/collé dans la balise <system.web> de votre fichier de configuration.
Par contre je ne comprends pas très bien pourquoi ça ne fonctionnait pas. Est-ce que le serveur décidait brusquement de changer de clé de cryptage entre deux aller-retour serveur ? Ca expliquerait pourquoi le viewstate était rejeté et les CryptographicException, mais ça me parait quand même bizarre...
Zero 7 - Warm Sound
Réactions :
mercredi 13 février 2008 - 10:43
nop
(http://www.peuw.net)




mardi 12 février 2008 - 23:14
Résultat des recherches : c'est apparemment une erreur prévisible dans le cas d'une web farm (load balancing tout ça) où, si j'ai bien compris, une requête peut être traitée par un serveur et le postback par un autre. Il faut donc que tous les serveurs utilisent la même clé, sinon l'un ne pourra pas décrypter (et valider) ce que l'autre serveur de la ferme a encrypté (eg. viewstate).
Le souci c'est que dans nôtre cas, il n'y avait pas de ferme de serveurs. Du coup, pas d'explications pour le moment.