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