L'application fonctionne bien depuis des mois, mais hier a eu un problème avec mon ordinateur de développement (mise à jour des créateurs d'automne) donc vérifié le code sur mon ordinateur portable et est allé travailler. Cependant, je suis confronté à un problème où l'application n'écrit pas le jeton dans la base de données de cache. Ajouter quelques points d'arrêt àASP.Net MVC ADAL TokenCache ignorant AfterAccess BeforeAccess
void BeforeAccessNotification(TokenCacheNotificationArgs args)
void AfterAccessNotification(TokenCacheNotificationArgs args)
void BeforeWriteNotification(TokenCacheNotificationArgs args)
méthodes que je peux voir qu'ils ne sont jamais touchés. Mon code est identique à l'exemple de code ici (sauf la ligne 14, a un nom différent)
Mon Startup.Auth.cs est le même que ci-dessous (je copié et collé à tester)
J'ai une autre application qui utilise l'authentification presque identique et il fonctionne très bien, je peux le regarder frapper cette ligne dans le Startup.Auth
AuthenticationResult result = await
authContext.AcquireTokenByAuthorizationCodeAsync(
context.Code, new Uri(HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Path)), credential, ConfigHelper.GraphResourceId);
puis il exécute BeforeAccessNotification, BeforeWriteNotification, AfterAccessNotification et fonctionne très bien. Mais dans l'application qui ne fonctionne pas, aucune des méthodes ci-dessus n'est exécutée, même si tout semble comme il se doit.
Toutes les idées? Je suis à perte totale.
Pouvez-vous comparer l'application de travail et celle qui ne fonctionne pas pour confirmer la différence? –
@ c2h0 - pouvez-vous définir un point d'arrêt sur le constructeur de votre cache? D'après ce que vous avez décrit, il semble qu'il y ait quelque chose au niveau du cadre d'entité (c'est-à-dire ne pas contacter la base de données?), De sorte que les informations mises en cache n'ont pas pu être récupérées. –