2012-06-11 5 views
6

Ich habe beobachtet und viele Seiten auf die Sicherung asp.net Web APIs angesehen - einschließlich: http://weblogs.asp.net/jgalloway/archive/2012/03/23/asp-net-web-api-screencast-series-part-6-authorization.aspx und http://weblogs.asp.net/jgalloway/archive/2012/05/04/asp-net-mvc-authentication-customizing-authentication-and-authorization-the-right-way.aspx - jedoch habe ich noch kein KISS-Typ-Beispiel gesehen.Authentifizieren über HTTP mit dem Web API in asp.net

Wenn ich eine Web-API habe, die zum Beispiel eine Liste von Autos zurückgibt - und ich arbeite mit einer dritten Partei (dh nicht meiner eigenen Website oder Server/Domain), die abfragen (holen) und einfügen möchte (Post) Listen von Autos nach einem Typ, in meine Datenbank, wie so authentifiziere ich sie (über https)?

Fügen Sie sie einfach (in ihre JSON GET/Post) so etwas wie:

[ 
{"username":"someusername","password":"somepassword", 
{ 
"carTypeID":12345, 
"carTypeID":9876} 
"carTypeID":2468} 
} 
} 
] 

kann ich dann den Benutzernamen und das Passwort greifen, und prüfen Sie gegen meine Mitgliedschaft Datenbank in .net, und "IfUserAuthenticated" go um den Rest des JSON zu verarbeiten?

Oder gibt es eine bessere Möglichkeit, dies zu tun? Ich habe gehört, Details zu den Kopfzeilen usw. hinzuzufügen - aber ich bin mir nicht sicher, ob das aus einem bestimmten Grund oder zu kompliziert ist. Ich habe auch gehört, Tokens zu setzen, die an die dritte Partei zurückgeschickt werden. Wenn das die beste Methode ist, welche Anweisungen gebe ich ihnen, baut sie ihre Seite der App auf, die meine API verwendet?

Vielen Dank für alle Tipps/Hinweise,

Mark

+0

Neben der grundlegenden auth Ansatz in der akzeptierte Antwort finden Sie in dieser Frage und Darin Dimitrov Antwort darüber, wie Formularauthentifizierung verwenden: http://stackoverflow.com/questions/11014953/asp-net-mvc-4-webapi-authentication –

Antwort

5

Wenn Sie es behalten wollen einfach Sie die Standardauthentifizierung verwenden können. Über SSL ist es ziemlich sicher. Es ist einfach umfasst das Hinzufügen eines Headers zu der Anfrage:

Authorization: Basic <username:password encoded as base64> 

Sie einen Weg, es zu implementieren here finden.

+0

Hallo @ Carles-Unternehmen - Vielen Dank für Ihre Antwort. Ich habe diesen Beitrag auch angesehen - kann aber nicht sehen (oder wahrscheinlicher, habe das Wissen noch nicht), was ich der dritten Partei sagen muss, damit sie sich authentifizieren kann. Der Artikel rät dazu, "es ihnen zu überlassen, es herauszufinden", aber ihnen zu helfen, hat Vorteile für beide Parteien - also würde ich gerne sagen können: "Mach das, tu das, du wirst die Liste der Autos bekommen" - Nochmals vielen Dank, Mark – Mark

+0

Der dritte Teil muss nur den Autorisierungsheader hinzufügen. Weitere Informationen finden Sie unter http://en.wikipedia.org/wiki/Basic Authentication. –

+0

Danke @ Carles-company - Ich werde genauer hinschauen - es ist offensichtlich ein Bereich, den ich nur lernen muss! Prost, Mark – Mark