2012-04-29 111 views
2

我對asp.net mvc webapi技術相當陌生。mvc4 webapi vs控制器安全(身份驗證和授權)

場景: 我正在爲企業設計一個mvc web應用程序。我知道,MVC控制器可以通過安全屬性進行授權和驗證。

Web應用程序顯示家庭用水量的各種趨勢。我們的願景是通過移動平板電腦訪問這些數據(您的名字)。

我想知道WebAPI會更好,然後控制器,以便相同的API可以被許多設備使用。

問題: 我用webapi的問題是安全性。在Web應用程序中,一旦用戶登錄控制器就知道用戶的安全配置文件等。在設備情況下,安全性如何工作?是否所有的客戶端都必須通過證書,如果是在服務器上如何處理安全問題?我們是否應該創建一個服務帳戶並提供給每個客戶?

謝謝,不知道我解釋得好。

+0

你正在創建api還是web應用?你說你會創建一個mvc web應用程序。如果是這種情況,那麼設計您的網站,以便可以通過移動設備查看。安全和授權不是問題。 – c0deNinja 2012-04-29 10:07:38

+0

Thanks @ c0deNinja,是的,我正在創建Web應用程序。但不介意使用JQuery來調用WebAPI。 – 2012-04-29 10:14:18

+0

你還有問題嗎?正如Myagdi所說,在不同設備視圖的情況下,考慮安全性並不是一個問題。並且屬性並不是唯一能夠管理WebApi中的安全性,我認爲DelegatingHandler更像IOC。 – 2012-07-19 09:07:32

回答

1

MVC安全性是標準ASP.Net Authentication/Authorization的疊加。 AuthorizeAttribute表示用戶必須通過身份驗證才能訪問此資源。它看起來是User IPrincipal IsAuthenticationated和角色

因此,這然後成爲一個ASP.NET身份驗證解決方案。

用戶身份驗證 - 直接使用第一篇文章中提到的任何方法。

設備驗證 - 沒有通用的答案,真的沒有一種真正安全的設備驗證方式。您可以通過在URL或HTTP標頭中傳遞唯一數據(設備序列號)來識別設備。