Asp.Net MVC 4 Web API 中的安全認證-自訂Authrize Filter

來源:互聯網
上載者:User

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的調用代碼。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.