Asp.net mvc 保护从其他项目或网站调用的webapi2项目

Asp.net mvc 保护从其他项目或网站调用的webapi2项目,asp.net-mvc,asp.net-web-api,asp.net-web-api2,Asp.net Mvc,Asp.net Web Api,Asp.net Web Api2,我有两个项目,一个是mvc5和webapi。我想从纯客户端庄园调用api,即使我使用mvc(我正在尝试将旧代码迁移到类似spa的应用程序中,但仍然能够维护当前的代码库) api的url位于主域下,例如subdomain.mydomain.com/api,所以我不必担心jsonp或跨域的东西 如何保护api。我认为当用户登录mvc5应用程序时,我可以访问某种密钥或令牌。我将其存储在站点的某个位置,并将其添加到请求头中 如果我遵循这种方法,我如何在api端验证令牌。读取标题的actionfilter

我有两个项目,一个是mvc5和webapi。我想从纯客户端庄园调用api,即使我使用mvc(我正在尝试将旧代码迁移到类似spa的应用程序中,但仍然能够维护当前的代码库)

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

如何保护api。我认为当用户登录mvc5应用程序时,我可以访问某种密钥或令牌。我将其存储在站点的某个位置,并将其添加到请求头中

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

关于使用api,我能找到的唯一信息是使用基本身份验证,这是我不想做的事情

我认为一个简单(ish)的方法是使用基于令牌的方法。因此,客户机进行一次身份验证,您给他们一个令牌,然后后续请求传递该令牌,服务器对其进行检查

它确实需要一些自定义代码,但我已经看到了一些很好的示例。以下是我大致遵循的一条:

它强制执行HTTPS,然后生成令牌并进行验证