IIS6 & IIS7 formes auth compatibilité

De fond:

J'ai deux applications web, mis en place sur des serveurs web différents, qui sont actuellement les deux IIS6. Application 1 (A1 - a1.domain.com) utilise les formes auth cookie fixés en application 2 (A2 - a2.domain.com).

Dans A1 web.config j'ai:

<authentication mode="Forms">
<forms name=".ASPXAUTH" domain="domain.com"  protection="All" path="/" loginUrl="http://a2.domain.com/login.aspx" timeout="60" />
</authentication>

En A2 web.config j'ai:

<authentication mode="Forms">
<forms name=".ASPXAUTH" domain="domain.com"  protection="All" path="/" loginUrl="login.aspx" timeout="60" />
</authentication>

Ces deux applications aussi partager machineKey valeurs dans le web.config

Cela fonctionne parfaitement sans aucun problème.

Problème:

Je me suis mise à niveau A1 à utiliser .NET 4.0 et exécuter dans IIS7, et maintenant l'partagé formes d'authentification ne fonctionne pas. Je suis toujours redirigé vers la bonne page de connexion sur A2, et je vois qu'il définit la auth cookie, mais quand je vais à A1 l'authentification échoue avec l'erreur suivante (à partir de l'Observateur d'Événements):

Formes échec de l'authentification de la demande. La raison: Le billet fourni n'est pas valide.

J'ai essayé:

  • La configuration de mise à niveau de la version de A1 dans IIS6 (cela a fonctionné - donc pas de problèmes de compatibilité entre les formes auth dans différents .NET versions dans IIS6)
  • La configuration de mise à niveau A1 dans IIS7 à l'aide d'une connexion locale page c'est à dire copié de la page de login à partir de A2 à A1 et définir A1 loginUrl="login.aspx" (marche aussi)

Cela m'a laissé deviner qu'il y a de problème de compatibilité causés par l'auth cookie créé en vertu d'une IIS6 site utilisé pour authentifier les utilisateurs sous un IIS7 site.

Personne ne sait comment résoudre ce problème?

OriginalL'auteur Chris | 2010-11-25