2010-10-22 11 views
0

Je travaille sur une application Web aspnet C# 3.5. Nous utilisons IIS7 sur notre serveur de test.Problème de décryptage des cookies entre 2 domaines

Cette webapp communique avec SharePoint 2007 3.0 SP2 par des services Web. Nous avons une machineKey dans web.config (celle de la webapp et celle du site Sharepoint). Les deux sites sont sur deux serveurs différents.

Cette communication fonctionne correctement. Nous avons aussi quelques SSO maison: l'utilisation dans la webapp clique sur un lien puis SharePoint s'ouvre dans une nouvelle fenêtre et l'utilisateur est déjà connecté. Cette SSO est gérée par un cookie "partagé" à la fois applications (même nom, même domaine). Dans SharePoint, nous avons développé un RedirectModule qui décrypte le ticket d'authentification du cookie et enregistre l'utilisateur.

HttpCookie authCookie = app.Request.Cookies[FormsAuthentication.FormsCookieName]; 

if (authCookie != null) 
{  
    FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value); 

    FormsIdentity identity = new FormsIdentity(authTicket); 
    GenericPrincipal principal = new GenericPrincipal(identity, null); 
} 

Mais, tout d'un coup, cette SSO est cassée. Lorsque SharePoint tente de déchiffrer le cookie, une exception est générée:

[HttpException (0x80004005): unable to validate data] 
    System.Web.Configuration.MachineKeySection.EncryptOrDecryptData(Boolean fEncrypt, Byte[] buf, Byte[] modifier, Int32 start, Int32 length, IVType ivType, Boolean useValidationSymAlgo, Boolean signData) +1008 
    System.Web.Configuration.MachineKeySection.EncryptOrDecryptData(Boolean fEncrypt, Byte[] buf, Byte[] modifier, Int32 start, Int32 length, IVType ivType, Boolean useValidationSymAlgo) +91 
    System.Web.Security.FormsAuthentication.Decrypt(String encryptedTicket) +246 

Rien n'a changé sur les deux serveurs. Quelle peut être la cause? Que puis-je faire pour le réparer?

+0

Etes-vous sûr que vous obtenez le même cookie sur les deux serveurs? avez-vous vérifié. – Aristos

+0

Les cookies ont le même nom, le même domaine, mais le contenu est différent, comme s'il était chiffré avec une clé machine différente. –

Répondre

0

Il est dû à un changement dans une boîte de proxy inverse sur le réseau local ...