Aucun gestionnaire d’authentification OWIN n’est associé à la demande

Après avoir essayé d’activer owin & AspNet Identity sur mon projet Web Api (dans VS 2013 + .Net 4.5.1), j’obtiens l’erreur suivante dans chaque requête valide ou non valide (requête à aucun contrôleur existant):

 An error has occurred.  No OWIN authentication manager is associated with the request.  System.InvalidOperationException  at System.Web.Http.Owin.PassiveAuthenticationMessageHandler.SuppressDefaultAuthenticationChallenges(HttpRequestMessage request) at System.Web.Http.Owin.PassiveAuthenticationMessageHandler.d__0.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ComstackrServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.ComstackrServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.ComstackrServices.TaskAwaiter`1.GetResult() at System.Web.Http.HttpServer.d__0.MoveNext()   

Comme j’ai vérifié en mode débogage, aucune exception n’est gérée aussi! De plus, je me suis rendu compte que la classe Configuration in Startup n’est jamais appelée (en fait, jamais attrapée par le débogueur). voici le code de démarrage:

 [assembly: OwinStartup(typeof(bloob.bloob.Startup))] namespace bloob.bloob { public partial class Startup { public void Configuration(IAppBuilder app) { ConfigureAuth(app); } } } 

J’ai initialement créé le projet avec authentification. J’ai dû supprimer ceci dans le fichier WebApiConfig.cs.

 // Web API configuration and services // Configure Web API to use only bearer token authentication. config.SuppressDefaultHostAuthentication(); config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType)); 

J’ai finalement trouvé le problème! Après avoir comparé ligne par ligne avec un projet nouvellement créé et n’avoir trouvé aucune différence, j’ai vérifié les références sur les deux projets et oui! … Tout le problème venait du manque de paquet:

 Microsoft.Owin.Host.SystemWeb 

Je ne sais pas pourquoi ce paquetage a été manqué lors de la phase d’installation du paquet, mais le problème est que pourquoi aucune exception de compilation n’a été lancée? ou aucune erreur de référence dll?

Mon cas, il a échoué depuis ce paramétrage dans web.config. J’espère que cela aidera quelqu’un à l’éviter.

    

Si vous n’avez pas besoin de OWIN, vous pouvez simplement le désinstaller.

une des façons de le faire est de désinstaller chaque bibliothèque OWIN dans Nuget Manager, l’ordre sera déterminé par leurs dépendances.

Une fois cela fait, vous n’avez besoin d’aucun code ou configuration associé à OWIN. Cela a fonctionné le mieux pour moi puisque j’utilise Windows auth.

J’ai eu le même problème. Le paquet n’apparaissait pas dans le gestionnaire de paquets NuGet. J’ai ajouté une référence dans packages.config:

   

Et référence dans le fichier projet (xxx.csproj):

   ..\packages\Microsoft.Owin.Host.SystemWeb.2.1.0\lib\net45\Microsoft.Owin.Host.SystemWeb.dll  

Changer la clé owin:AutomaticAppStartup en true dans Web.config a corrigé ceci pour moi, c.-à-d. Le changer de:

    

pour ça: