2014-11-17 10 views
6

Vorrei utilizzare ASP.NET WebAPI 2, ma con il mio meccanismo di autenticazione. Ho provato a rimuovere tutto il codice fornito con il modello SPA in VS 2013, oltre al normale modello WebAPI. Se rimuovo tutto il codice relativo all'author dal progetto e non configuro OWIN nel suo Startup.Auth, ottengo sempre un errore, che l'autenticazione del middleware OWIN non è impostata e non riesco ad ottenere l'azione di alcun controller.Utilizzare WebAPI 2 senza il middleware di autenticazione OWIN

Qual è il modo corretto di implementare un'autenticazione basata su token in WebAPI 2 con il proprio codice, ignorando ciò che è immediato nell'host OWIN .dll, inclusi i requisiti di configurazione?

+1

Hai iniziato con un modello completamente vuoto Web Api 2? Non penso che ci siano dei requisiti OWIN con esso e utilizza ancora Global.aspx per la configurazione. Detto questo, OWIN è il percorso verso cui Microsoft sta andando verso il futuro. Dovresti essere in grado di utilizzare la tua autenticazione anche con esso incluse le sue DLL nel progetto. Questa serie di blog potrebbe aiutare alcuni: http://bitoftech.net/2014/06/01/token-based-authentication-asp-net-web-api-2-owin-asp-net-identity/ – John

+1

Io sono un situazione in cui ho bisogno di autenticare gli utenti attraverso una classe di servizio .net fornita. Un cliente per il quale stiamo sviluppando software non sarà contento di vedere OAuth o qualche sua parte nella sua pura soluzione orientata all'impresa, quindi cerco la soluzione più pulita e "sotto controllo" possibile. Avere un sacco di codice nascosto e scarsamente documentato (in leasing per ora) non è una situazione adatta ai progetti software. –

+0

Come per il modello WebAPI 2 - beh, se si crea un progetto modello di applicazione Web ASP.Net e si sceglie WebAPI in una procedura guidata, si otterrà il "carico" OWIN con il codice generato, sfortunatamente. –

risposta

2

È possibile utilizzare il modello Asp.Net vuoto e aggiungere Web Api 2 come pacchetti nuget o rimuovere elementi non utilizzati dagli altri modelli di avvio.

+0

Crea il vuoto asp.net e aggiungi cartelle e riferimenti di base per web api – tharo

11

Simile a Giovanni, ma è possibile rimuovere OWIN durante la creazione di WebAPI. Approccio molto più pulito

per farlo: Selezionare "Modifica autenticazione" enter image description here

quindi scegliere "No Authenciation"

enter image description here

Ora il progetto non avrai la roba OWIN

Acclamazioni Choco

1

Si può solo commentare le seguenti righe di codice:

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