2017-07-14 2 views
0

Je veux déchiffrer le cookie OWIN nommé par défaut ".AspNet.Cookies" par le middleware CookieAuthentication.Comment déchiffrer le cookie ASP.NET pour le middleware CookieAuthentication

+0

Désolé je n'ai pas élaboré dans la question depuis que j'ai ajouté ce que j'ai essayé dans ma propre réponse. – AlejandroC

+0

Étudie ce sujet depuis quelques jours et trouve la réponse réunissant plusieurs sources. Je voulais juste partager les résultats. :) – AlejandroC

Répondre

0

Voir ce lien: https://lbadri.wordpress.com/2014/11/23/reading-katana-cookie-authentication-middlewares-cookie-from-formsauthenticationmodule/

// Get Cookie 
var request = HttpContext.Request; 
var cookie = request.Cookies.Get(".AspNet.Cookies"); 
var ticket = cookie.Value; 

// Format Cookie to be converted 
ticket = ticket.Replace('-', '+').Replace('_', '/'); 
var padding = 3 - ((ticket.Length + 3) % 4); 
if (padding != 0) 
    ticket = ticket + new string('=', padding); 
var bytes = Convert.FromBase64String(ticket); 

// Decrypt 
bytes = System.Web.Security.MachineKey.Unprotect(bytes, 
    typeof(CookieAuthenticationMiddleware).FullName, 
    "Cookies", // See below 
    "v1"); 

Les paramètres transmis à Déprotégez après le paramètre octets, sont appelés aux fins , qui doivent correspondre à celle attendue afin de pouvoir correctement déchiffrer . Sinon, vous obtenez CryptographicException.

Le paramètre « Cookies » correspond à la valeur:

(new CookieAuthenticationOptions()).AuthenticationType 

Après le décryptage, vous pouvez construire le ClaimsIdentity comme expliqué dans le lien ci-dessus ou vider les octets à une chaîne.