2012-06-11 116 views
6

我已經觀看並查看了很多關於確保asp.net web api的頁面 - 包括:http://weblogs.asp.net/jgalloway/archive/2012/03/23/asp-net-web-api-screencast-series-part-6-authorization.aspxhttp://weblogs.asp.net/jgalloway/archive/2012/05/04/asp-net-mvc-authentication-customizing-authentication-and-authorization-the-right-way.aspx - 但是,我還沒有看到KISS類型的示例。使用asp.net中的web api通過http進行身份驗證

如果我有一個web api,例如返回汽車列表 - 我正在與第三方(即不是我自己的網站或服務器/域)誰想要查詢(get)和插入(發佈)按類型列出的汽車,到我的數據庫中,我如何通過https驗證它們?

難道他們簡單地增加(到他們的JSON GET/POST)是這樣的:

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

然後我可以搶的用戶名和密碼,覈對在.NET我的會員數據庫,以及「IfUserAuthenticated」去處理剩下的JSON?

或者有沒有更好的方法來做到這一點?我聽說爲頭文件添加細節等 - 但我不確定這是出於某種原因還是過於複雜。我也聽說過將令牌發回給第三方 - 如果這是最好的方法,我給他們的指令是如何構建他們將使用我的API的應用程序的一面?

感謝您的任何意見/指針,

馬克

+0

除了公認的答案基本身份驗證方法,請參閱這個問題,達林季米特洛夫如何回答使用表單身份驗證:http://stackoverflow.com/questions/11014953/asp-net-mvc-4-webapi-authentication –

回答

5

如果你想保持它的簡單,你可以使用基本身份驗證。通過SSL,它非常安全。它只是涉及添加頁眉請求:

Authorization: Basic <username:password encoded as base64> 

你能找到一種方法來實現它here

+0

嗨@ carles-company - 謝謝你的回覆。我也看過那篇文章 - 但看不到(或者更可能,還沒有知識)告訴第三方以便他們進行身份驗證的內容。文章建議「留給他們弄清楚」,但幫助他們,對雙方都有好處 - 所以我希望能夠說「做到這一點,做到這一點,你會得到汽車列表」 - 再次感謝您,Mark – Mark

+0

第三部分只需添加授權標題。有關更多詳細信息,請參閱http://en.wikipedia.org/wiki/Basic身份驗證。 –

+0

謝謝@ Carles-company - 我會更仔細地看看 - 這顯然是我需要學習的一個領域!乾杯,馬克 – Mark

相關問題