【问题标题】:Any examples of a MessageHandler for WebAPI Forms Authentication?Web API 表单身份验证的消息处理程序的任何示例?
【发布时间】:2013-04-06 19:47:07
【问题描述】:

作为这个问题的后续:

WebAPI + Forms Authentication + SimpleMembershipProvider using WindowsIdentity when it shouldn't

我现在正在尝试实现一个消息处理程序,该处理程序在每个请求上设置主体,但我不确定如何将它与 simpleMembershipProvider 联系起来。我正在寻找一个设置主体并针对 simpleMembership 执行身份验证的示例。

【问题讨论】:

    标签: asp.net-mvc security authentication asp.net-web-api


    【解决方案1】:

    答案是“这取决于您计划在 Web api 上实施的身份验证机制”。

    基本 Http 身份验证?

    这应该可行:

    http://www.piotrwalat.net/basic-http-authentication-in-asp-net-web-api-using-message-handlers/

    ...似乎有更好/更简单的方法

    http://leastprivilege.com/2012/10/23/mixing-mvc-forms-authentication-and-web-api-basic-authentication/

    这里的想法是,您将以纯文本形式发送您的凭据(希望您应该使用 https),并且消息处理程序(又名 DelegatingHandler)将获取这些凭据,使用您的简单会员提供程序验证它们,并返回 401 如果无效或设置委托人,如果他们没问题。

    更复杂的机制?

    与具有更复杂机制的基本 http 身份验证相比,您的 api 用户将进行身份验证一次,并且您的 api 将发出一个安全令牌,该令牌应在客户端发出的每个后续请求中发送.

    在这种情况下,您的 DelegatingHandler 将检查此令牌,对其进行验证,并以 401 响应或相应地设置委托人。

    请注意,我没有在这里介绍令牌颁发或验证背后的逻辑,因为它们通常是自定义的。你可以google一下亚马逊是如何用它的api做的,但如果你的api背后的数据非常敏感,我只会使用这种复杂的机制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-14
      • 2017-01-28
      • 1970-01-01
      • 2014-01-26
      • 1970-01-01
      • 1970-01-01
      • 2015-06-24
      • 2018-05-01
      相关资源
      最近更新 更多