Ho un'API Web con autenticazione OWIN in Web MVC. Sto utilizzando <authentication>
in Web.Config per il mio MVC Web, quindi sta reindirizzando la pagina di accesso.Effettuare l'autenticazione dell'API Web restituisce 401 anziché reindirizzare alla pagina di accesso
<authentication mode="Forms">
<forms name="WEB.AUTH" loginUrl="~/login" domain="" protection="All"
timeout="43200" path="/" requireSSL="false" slidingExpiration="true" />
</authentication>
sto usando attributo [System.Web.Http.Authorize]
di autorizzare il mio Web API. Ma in qualche modo, l'API reindirizza alla pagina di accesso come la mia app MVC a causa della configurazione precedente.
quello che voglio fare è mantenere la funzione di reindirizzamento per il Web MVC ma restituendo 401 per Web API. Come posso raggiungere questo obiettivo? dovrei creare un attributo di autorizzazione personalizzato per l'API Web?
--EDIT--
ho trovato la risposta da questo post SuppressDefaultHostAuthentication in WebApi.Owin also suppressing authentication outside webapi
Così ho solo aggiungere alcune righe nel mio Startup.cs
. Ho avuto tutti i miei controller configurati con un percorso di prefisso "api".
HttpConfiguration config = new HttpConfiguration();
//..some OWIN configuration
app.Map("/api", inner =>
{
inner.UseWebApi(config);
});
assicuratevi di mettere app.Map()
dopo le linee di configurazione Web API. Altrimenti, darà errore all'applicazione MVC.
Non funziona per me. tuttavia, ho trovato la soluzione. Si prega di controllare il mio post modificato. – vantian