Nachdem ich versucht habe, owin & AspNet Identity für mein Web-API-Projekt zu aktivieren (in VS 2013 + .Net 4.5.1), wird bei jeder gültigen oder ungültigen Anforderung (Anforderung an keinen vorhandenen Controller) der folgende Fehler angezeigt:
<Error>
<Message>An error has occurred.</Message>
<ExceptionMessage>
No OWIN authentication manager is associated with the request.
</ExceptionMessage>
<ExceptionType>System.InvalidOperationException</ExceptionType>
<StackTrace>
at System.Web.Http.Owin.PassiveAuthenticationMessageHandler.SuppressDefaultAuthenticationChallenges(HttpRequestMessage request) at System.Web.Http.Owin.PassiveAuthenticationMessageHandler.<SendAsync>d__0.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Web.Http.HttpServer.<SendAsync>d__0.MoveNext()
</StackTrace>
</Error>
Da ich im Debug-Modus eingecheckt habe, wird auch keine Ausnahme behandelt! Außerdem wurde mir klar, dass Configuration
in der Startup
Klasse nie aufgerufen wird (tatsächlich nie vom Debugger gefangen). Hier ist der Code für den Start:
[assembly: OwinStartup(typeof(bloob.bloob.Startup))]
namespace bloob.bloob
{
public partial class Startup
{
public void Configuration(IAppBuilder app)
{
ConfigureAuth(app);
}
}
}
quelle
Tools
>NuGet Package Manager
>Manage NuGet packages for Solution...
>Browse
> Suche nach und installierenMicrosoft.Owin.Host.SystemWeb
Ich habe das Projekt ursprünglich mit Authentifizierung erstellt, mich dann aber entschieden, es zu deaktivieren. Ich musste dies in der
WebApiConfig.cs
Datei entfernen . Stellen Sie sicher, dass Sie dies haben, wenn Sie die Authentifizierung aktivieren möchten.quelle
Mein Fall, es ist seit diesen Einstellungen in web.config fehlgeschlagen. Hoffe das hilft jemandem es zu vermeiden.
quelle
Ich hatte das gleiche Problem. Das Paket wurde nicht im NuGet-Paketmanager angezeigt. Ich habe eine Referenz in packages.config hinzugefügt:
Und Referenz in der Projektdatei (xxx.csproj):
quelle
Wenn Sie OWIN nicht benötigen, können Sie es einfach deinstallieren.
Eine Möglichkeit, dies zu tun, besteht darin, in Nuget Manager jede OWIN-Bibliothek zu deinstallieren. Die Reihenfolge wird durch ihre Abhängigkeiten bestimmt.
Danach benötigen Sie keinen OWIN-bezogenen Code oder keine Konfiguration. Dies hat für mich am besten funktioniert, da ich Windows Auth verwende.
quelle
Durch Ändern des
owin:AutomaticAppStartup
Schlüssels intrue
in Web.config wurde dies für mich behoben, dh geändert von:dazu:
quelle
Für das .NET-Framework wird den Modulen in web.config das Attribut runAllManagedModulesForAllRequests hinzugefügt . Auf diese Weise habe ich die Authentifizierung beibehalten.
quelle