这是一个很大的主题,您可能需要花一些时间来学习基础知识,抱歉。
也就是说……
为了对后续方法调用进行身份验证,您需要可以随每个请求传回的内容。如果你从一个网站调用你的 api,比如说因为你使用的是 Angular 或类似的,那么一个简单的 cookie(适当加密和 MACed)就可以工作。具体如何实现取决于您是否使用 OWIN 以及您的项目中是否还有 MVC 来提供页面。不要自己创建 cookie,使用 FormsAuthentication 或等效的 OWIN 中间件。
您不需要使用 Microsoft 的会员资格或身份,但请注意,自己处理密码并非易事,而且您确实需要知道自己在用这些东西做什么——如果您愿意,没有什么可以替代大量研究要做到这一点。
如果您需要从网站以外的其他地方调用 api,那么使用 cookie 会很痛苦。还要注意,在使用 cookie 和 Web api 时存在一些微妙的 CSRF 漏洞,您需要了解和防范这些漏洞。
cookie 的替代方法是嵌入 ThinkTecture Identityserver(它是免费的)之类的东西,并使用它来发布 oAuth 令牌,然后将它们附加到每个 API 请求。它有许多优点,但也更复杂。
资源
您确实要求提供有关从何处开始阅读的指示。由于 Microsoft 在过去几年中多次更改其“默认”方法,因此您的任务变得复杂。当前的默认方法是Identity,它取代了以前的 MembershipProvider(很好摆脱)。如果你是新手,老实说,我建议你走那条路——你可以扩展它,它与堆栈的大部分其余部分很好地联系在一起。是的,你失去了一些灵活性,你需要将它包装在你当前的用户存储中。但是您需要问问自己,开箱即用的安全性是否不值得。
我也会推荐Brock Allen's blog。这很硬核,但他知道自己的东西,并且经常会解释许多 Microsoft 身份验证技术的内部结构。
我建议您尝试阅读“OWIN 身份验证中间件”。这就是一切,尤其是 ASP.Net vNext。可悲的是,那里的大多数文档都集中在它的超级易用性上(而且它是 - 用于演示),但缺乏关于它如何真正工作的任何深入信息,这可能非常令人沮丧。
为了了解令牌和不同标准的工作原理,我建议您在此处观看此视频:http://www.ndcvideos.com/#/app/video/2651
然后看看 Azure 移动服务,它甚至有客户端库来处理我相信的身份验证或 ThinkTecture Identity Server。即使你最终不使用 IdSrv,通过阅读他们关于如何使用它的教程,你也会学到很多关于整个事情如何运作的知识;这一切都基于开放标准。此处的文档:http://identityserver.github.io/Documentation/docs/
尝试完成他们的教程;他们使用 Windows 控制台应用程序代替应用程序,但概念是相同的。
祝你好运,但我想在结束时说请不要只是把看似可行的东西拼凑在一起。 Web 安全越来越复杂,很容易在代码中留下漏洞——我是根据经验来谈的:)
不要做月猪。