情况
我有一个即将进行的项目,其中网页将进行 AJAX 调用。还将为外部客户端提供 REST API。我将使用带有 Web API 的 ASP.NET MVC 4 来实现这个项目。
我在网上看到了各种例子,人们使用该[Authorize]
属性来保证安全。我认为这是每当通过网页上的 AJAX 调用 Web API 时。
我还看到了各种示例,其中 API 密钥与每个请求一起传递(通过查询字符串或标头)。我认为这是每当从外部系统调用 Web API 时。
问题
以下是立即浮现在脑海中的问题:
- 我应该为内部和外部客户端创建一个单独的控制器吗?
- 还是我应该强制网页使用相同的外部身份验证模型?
- 或者有没有办法让外部客户端可以使用 Authorize 属性?
- 或者我应该以某种方式同时支持两种形式或身份验证?
旁注
一位同事指出,我可能希望将 API 部署到与托管 Web 应用程序的位置完全不同的 URL。同样,他指出外部 API 可能需要更粗粒度或单独发展。
我不想在这里重新发明轮子。[HttpPost]
这让我想知道我是否应该首先使用 Web API 作为我的 AJAX 调用的内部 API,还是应该坚持使用带有属性的老式 MVC 操作。