2016-07-11 27 views
2

Ich weiß, das ist eine sehr häufige Frage. Aber ich weiß wirklich nicht, wie ich es integrieren soll. Ich möchte die Authentifizierung meiner Web-API-Dienste hinzufügen. Im Moment habe ich eine Konsolenanwendung erstellt, um die Methode des Dienstes aufzurufen.Authentifizierung in Web-API

Ich bin durch diese blog gegangen. Ich möchte nur Authentifizierungsfilter wie in diesem Artikel erwähnt implementieren.

Ich möchte wissen, wie ich Anmeldeinformationen zusammen mit HTTPClient aus meiner Konsolenanwendung übergeben kann, diese Dinge zu Web-API holen und sie authentifizieren.

Ich habe Authentifizierungsfilter erstellt, aber AuthenticateAsync-Methode des Authentifizierungsfilters nicht aufgerufen.

public void GetData() 
    { 
     HttpClient cons = new HttpClient(); 
     cons.BaseAddress = new Uri("http://localhost:50524/"); 
     cons.DefaultRequestHeaders.Accept.Clear(); 
     cons.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 
     var data = Encoding.ASCII.GetBytes("Ankita:ankita123"); 
     var header = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(data)); 
     cons.DefaultRequestHeaders.Authorization = header; 

     //MyAPIPost(cons).Wait(); 
     MyAPIGet(cons).Wait(); 
    } 
+0

Überprüfen Sie diesen Blogpost: http://code.tutsplus.com/tutorials/securing-aspnet-web-api-cms-26012 – peco

Antwort

0

Ich habe erfolgreich Authentifizierung unter Verwendung this Artikel implementiert. In diesem Filter Attribut ist implementiert.

3

Lehre, wie man implementieren Authentifizierung in Web API nehmen viel Zeit:

an HTTP-Client Ich habe dies getan passieren. Sie bleiben besser bei Online-Tutorials.

Der Blog, den Sie gelesen haben, befasst sich mit unterschiedlicher Authentifizierung für ASP.NET. Da Sie Ihre Frage als ASP.NET Web API 2 gekennzeichnet haben, würde ich vorschlagen, eine Token-basierte Authentifizierung mit OWIN-Middleware zu verwenden. Überprüfen Sie this aus. Das Handbuch verwendet eine Konsolenanwendung zum Überprüfen der Anforderungen an die Web-API.

Der Kern ist es ...

Client> Token Provider (Gene Token für gültigen)> Web-API> Überprüfen Sie, ob Token Valid (Bestehende und nicht abgelaufen)> Authentifizieren ist!

+0

Ich muss Typattribut implementieren. Damit wir es global oder für eine bestimmte Methode verwenden können. Ist es möglich? – Ankita

+0

Mit der Web-API können Sie die Methode oder den Web-API-Controller einfach mit dem Attribut "[Autorisieren]" kennzeichnen, wenn Sie die Authentifizierung implementieren möchten. Natürlich müssen Sie den Provider wie im Tutorial gezeigt implementieren. –

+0

Ich stimme zu, Token-basierte Authentifizierung ist besser als Passwörter übergeben. – Alex

0

Betrachtet man versuchen, die API mit einem Httpclient zuzugreifen, können Sie ihm eine Instanz von HttpClientHandler passieren, wenn es zu schaffen, mit dem Sie die Anmeldeinformationen festlegen kann, die verwendet werden, wenn er Anforderungen erfüllt:

new HttpClient(new HttpClientHandler { Credentials = new NetworkCredential(userName, password) }) 

Hoffe es hilft!