【问题标题】:Secure a webapi2 project to be called from another project or website保护从另一个项目或网站调用的 webapi2 项目
【发布时间】:2014-02-13 13:42:11
【问题描述】:

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

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

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

如果我遵循这种方法,如何在 api 端验证令牌。读取标题的动作过滤器?还是有更清洁的方法。

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-30
      • 1970-01-01
      • 2013-10-10
      • 2021-06-14
      • 1970-01-01
      • 2015-05-28
      • 2019-04-20
      相关资源
      最近更新 更多