2015-12-04 52 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