ASP.NET MVC4中的Web API提供了很好的API接口開發方式。可以更好地適應現在的跨平台移動開發。相信大家很多的項目現在都在使用Web Service作為提供數據的接口。好吧,那么Web API將是用來革Web Service的命。哈哈。 當然了,WCF這玩意我相信很可能在不久的將來會融入到ASP.NET MVC中。
開發提供數據的API,最重要的是數據的安全性。那么對於我們來說,如何確保數據的安全將會是需要思考的問題。沒有SOAP頭,只能用別的方式。比如OAUTH,HTTP AUTH等等。這篇文章將會和大家探討下普通的http認證使用。然后會在后續提供oauth認證方案。。。。
聲明下:對於老鳥們,下面的文章可能對你沒用,因為都是基礎的http認證知識。
先看看ASP.NET MVC 官網提供的例子:http://code.msdn.microsoft.com/ASPNET-Web-API-JavaScript-d0d64dd7
Web API:
默認的是使用Form認證。對於我們來說這個是比較熟悉的。如果想了解MVC是如何實現監測form認證的,可以下載下MVC源代碼看看(反正我是看着那些代碼頭疼)。但是吧,這個簡單的檢測認證部分我還是能看明白的:
如果你使用的是跨平台的調用Web API,那么這個認證好像就沒法用了。需要自定義認證方式,簡單的辦法就是繼承Authorize類,override方法OnAuthorization。
這里假設我們使用基本的http認證,那么OnAuthorization方法實現如下:
在http請求的header中查看是否有認證信息,然后使用Base64解密:
來吧,瀏覽器測試下:訪問添加了CustomBasicAuthorize的Controller,會彈出windows認證框,輸入用戶名和密碼,使用Fiddler跟蹤下:
http 請求信息:
看着認證信息加密了,其實沒啥用,Base64加密的,太容易破解了。 所以如果這種認證方式也就適合在公司內部系統使用。 如果你真想在項目中使用,也是可以的,請使用SSL。
以上沒有提供object-c的調用代碼或者android的調用代碼。