作为这个问题的后续行动:
WebAPI + Forms Authentication + SimpleMembershipProvider 在不应该使用 WindowsIdentity 时使用
我现在正在尝试实现一个消息处理程序,该处理程序在每个请求上设置主体,但我不确定如何将它与 simpleMembershipProvider 联系起来。我正在寻找一个设置主体并针对 simpleMembership 执行身份验证的示例。
作为这个问题的后续行动:
WebAPI + Forms Authentication + SimpleMembershipProvider 在不应该使用 WindowsIdentity 时使用
我现在正在尝试实现一个消息处理程序,该处理程序在每个请求上设置主体,但我不确定如何将它与 simpleMembershipProvider 联系起来。我正在寻找一个设置主体并针对 simpleMembership 执行身份验证的示例。
答案是“这取决于您计划在 Web api 上实施的身份验证机制”。
这应该有效:
http://www.piotrwalat.net/basic-http-authentication-in-asp-net-web-api-using-message-handlers/
...而且似乎有更好/更简单的方法
这里的想法是您将以纯文本形式发送您的凭据(希望您应该使用 https),并且消息处理程序(又名 DelegatingHandler)将获取这些凭据,使用您的简单会员提供程序验证它们,如果无效或设置返回 401如果他们没问题,就上去校长。
与具有更复杂机制的基本 http 身份验证相比,您的 api 用户将进行一次身份验证,并且您的 api 将发出一个安全令牌,该令牌应在客户端发出的每个后续请求上发送。
在这种情况下,您的 DelegatingHandler 将检查此令牌,对其进行验证,并以 401 响应或相应地设置委托人。
请注意,我没有在这里介绍令牌颁发或验证背后的逻辑,因为它们通常是自定义的。你可以用谷歌搜索亚马逊是如何用它的 api 做的,但如果你的 api 背后的数据非常敏感,我只会使用这种复杂的机制。