2015-12-04 82 views
0

我目前有一個ASP.NET MVC和ASP.NET WEB API 2項目(這兩種類型的控制器都包含在同一個項目中)。ASP.NET WEB API 2安全建議

我想確保用戶不能直接調用Web Api並獲取原始數據(例如http://domain/api/myaction)。但是,Api方法應該能夠通過AJAX由jquery調用,而且MVC Controller Actions也應該能夠調用Web Api Actions(在初始View應該使用來自API的一些數據呈現的情況下) 。

什麼是做這樣的事情的最佳方法,或者我看着這個錯誤的方式?

回答

2

Ajax調用和「直接」調用沒有區別。 你應該在動作控制器的任何情況下做什麼,通過令牌或你建立的任何認證方法來驗證請求。

如果您使用Microsoft身份驗證,則只需在控制器/操作上添加[Authorize]標籤。

https://msdn.microsoft.com/en-us/library/system.web.mvc.authorizeattribute(v=vs.118).aspx

+0

是否有可能再有,在jQuery的Ajax調用加密憑證一些靜態API的用戶?我只想阻止用戶可以查看源代碼的場景,並且可以通過直接調用API來濫用API。我只想讓jquery和頁面本身能夠打電話。 – blgrnboy

+0

Web-Api根據定義假定可用於HTTP請求。我不知道您使用的是何種身份驗證,以及您是否正在使用。答案取決於實施的認證。 – Avi