2014-11-17 6 views
6

Ich möchte ASP.NET WebAPI 2, aber mit meinem eigenen Authentifizierungsmechanismus verwenden. Ich habe versucht, den gesamten Code, der mit der SPA-Vorlage in VS 2013 geliefert wird, sowie die normale WebAPI-Vorlage zu entfernen. Wenn ich den gesamten Auth-Code aus dem Projekt entferne und OWIN nicht in der Startup.Auth konfiguriere, bekomme ich immer einen Fehler, dass die OWIN-Middleware-Authentifizierung nicht eingerichtet ist und ich keine Aktion des Controllers bekomme.Verwenden Sie WebAPI 2 ohne OWIN Authentifizierung Middleware

Was ist der richtige Weg, um eine tokenbasierte Authentifizierung in WebAPI 2 mit eigenem Code zu implementieren, um die bestehenden OWIN-Host-DLLs zu umgehen, einschließlich der Konfigurationsanforderungen?

+1

Haben Sie mit einem völlig leeren Web Api 2-Vorlage beginnen? Ich denke nicht, dass es OWIN-Anforderungen gibt, und es verwendet immer noch Global.aspx für die Konfiguration. Nichtsdestotrotz ist OWIN der Weg, den Microsoft für die Zukunft eingeschlagen hat. Sie sollten in der Lage sein, Ihre eigene Auth zu verwenden, sogar mit seinen DLLs im Projekt. Diese Blogserie könnte einigen helfen: http://bitoftech.net/2014/06/01/token-based-authentication-asp-net-web-api-2-owin-asp-net-identity/ – John

+1

Ich bin es ein Situation, in der ich Benutzer über eine bereitgestellte .net Dienstklasse authentifizieren muss. Ein Kunde, für den wir Software entwickeln, wird nicht glücklich sein, OAuth oder Teile davon in seiner reinen, unternehmensorientierten Lösung zu sehen. Daher strebe ich eine möglichst saubere und "unter Kontrolle" stehende Lösung an. Viel Code versteckt und schlecht dokumentiert zu haben (im Moment für jetzt), ist keine Situation, die zu Software-Projekten passt. –

+0

Wie für WebAPI 2 Vorlage - Nun, wenn Sie ASP.NET Web Application Vorlage Projekt erstellen und WebAPI in einem Assistenten wählen, erhalten Sie leider die OWIN "Last" mit dem generierten Code. –

Antwort

2

Sie können die leere Asp.Net-Vorlage verwenden und Web Api 2 als Nugget-Pakete hinzufügen oder nicht verwendetes Material aus den anderen Starter-Vorlagen entfernen.

+0

Erstellen Sie die leere asp.net und fügen Sie Ordner und Core-Referenz für Web-API – tharo

11

Ähnlich wie John antworten, aber Sie können das OWIN beim Erstellen der WebAPI entfernen. Viel sauberer Ansatz.

zu tun, dass: Wählen Sie "Change-Authentifizierung" enter image description here

dann wählen Sie "Nein Authenciation"

enter image description here

Jetzt haben Sie Ihr Projekt wird nicht das OWIN Sachen

Prost Choco

1

Sie können nur die folgenden Codezeilen auf Kommentar:

Startup.cs:

//[assembly: OwinStartup(typeof(Yourpoject.Startup))] 

public void Configuration(IAppBuilder app) 
{ 
    //ConfigureAuth(app); 
} 

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));