保护要从其他项目或网站调用的webapi2项目

时间:2013-12-04 00:20:36

标签: asp.net-mvc asp.net-web-api asp.net-web-api2

我有2个项目是mvc5&的WebAPI。我想从一个纯粹的客户端庄园调用api,即使我正在使用mvc(我正在放慢尝试将旧代码迁移到像应用程序仍然能够维护当前代码库的spa)。

api的url位于主域之下,例如subdomain.mydomain.com/api所以我不必担心jsonp或crossdomain的东西。

如何保护api。我是否正确地想到当用户登录mvc5应用程序时,我可以访问某种密钥或令牌。我将它存储在网站的某个地方并将其添加到请求标题中?

如果我遵循这种方法,如何在api端验证令牌。一个读取标题的actionfilter?还是有一种更清洁的方法。

我在使用api时真正找到的唯一信息是使用基本的auth,这是我真的不想要做的事情。

1 个答案:

答案 0 :(得分:0)

我认为一种简单的(简单的)方法是使用基于令牌的方法。所以客户端验证一次,你给他们一个令牌,然后后续请求传递令牌,服务器检查它。

它确实需要一些自定义代码,但我看到了一些很好的例子。这是我松散遵循的一个: http://www.codeproject.com/Articles/630986/Cross-Platform-Authentication-With-ASP-NET-Web-API

它强制执行HTTPS,然后执行令牌生成和验证。