2014-11-17 10 views
6

Chciałbym używać interfejsu ASP.NET WebAPI 2, ale z własnym mechanizmem uwierzytelniania. Próbowałem usunąć cały kod, który pochodzi z szablonu SPA w VS 2013, jak również normalny szablon WebAPI. Jeśli usuwam cały kod związany z auth z projektu i nie konfiguruję OWIN w jego pliku Startup.Auth, zawsze pojawia się błąd, że uwierzytelnianie oprogramowania pośredniego OWIN nie jest skonfigurowane i nie mogę uzyskać dostępu do działania żadnego kontrolera.Użyj interfejsu WebAPI 2 bez oprogramowania pośredniego uwierzytelniania OWIN.

Jaki jest poprawny sposób wdrożenia uwierzytelniania opartego na tokenie w WebAPI 2 z własnym kodem, pomijając to, co aready znajduje się w pliku .dll hosta OWIN, w tym jego wymagania dotyczące konfiguracji?

+1

zacząłeś z zupełnie puste Web Api 2 szablonie? Nie sądzę, że są w nim jakieś wymagania OWIN i nadal używa Global.aspx do konfiguracji. Powiedział, że OWIN jest ścieżką, którą Microsoft zmierza ku przyszłości. Powinieneś być w stanie używać własnego auth nawet z nim, w tym bibliotekami DLL w projekcie. Ta seria blogów może pomóc: http://bitoftech.net/2014/06/01/token-based-authentication-asp-net-web-api-2-owin-asp-net-identity/ – John

+1

Ja jestem sytuacji, w której muszę uwierzytelniać użytkowników za pośrednictwem udostępnianej klasy usługi .net. Klient, dla którego tworzymy oprogramowanie, nie będzie zadowolony, gdy zobaczymy OAuth lub jego fragmenty w jego czysto biznesowym rozwiązaniu, więc dążę do tego, aby było ono jak najbardziej czyste i "pod kontrolą". Posiadanie mnóstwa kodu ukrytego i słabo udokumentowanego (na razie dzierżawionego) nie jest sytuacją, która pasowałaby do projektów oprogramowania. –

+0

Jeśli chodzi o szablon WebAPI 2 - cóż, jeśli utworzysz projekt szablonu aplikacji WWW ASP.Net i wybierzesz WebAPI w kreatorze, otrzymasz niestety "obciążenie" OWIN z wygenerowanym kodem. –

Odpowiedz

2

Możesz użyć pustego szablonu Asp.Net i dodać Web Api 2 jako pakiety nuget lub usunąć nieużywane elementy z innych szablonów startowych.

+0

Utwórz pusty asp.net i dodaj foldery i podstawowe odwołanie do interfejsu WWW – tharo

11

Podobna do odpowiedzi Johna, ale możesz usunąć OWIN podczas tworzenia WebAPI. Znacznie czystsze podejście.

Aby zrobić to: wybierz "Zmień uwierzytelniania" enter image description here

następnie wybierz "No Authenciation"

enter image description here

Teraz projekt przyzwyczajenie się rzeczy OWIN

Cheers Choco

1

Wystarczy wypowiedzieć następujące wiersze kodu:

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)); 
Powiązane problemy