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