我刚开始学习asp.net核心 . 我想创建一个简单的Web应用程序,我将在asp.net核心中有一个rest API,然后是一个单独的前端,有一些角度消耗该API .
我试图弄清楚ASP.NET核心身份和cookie /令牌认证有点困难......
我的问题很简单:我可以创建一个API并使用Entity Framework进行数据库处理和ASP.NET Core Identity来处理用户和授权的创建和管理吗?我是否还必须使用一些JWT,OAuth或类似的东西?这对我来说是全新的,我感到很困惑,因为每个示例/教程都以不同的方式显示它,我感到非常困惑......
谢谢你的帮助!
2 回答
我'm working on a project that'非常相似 . 查看IdentityServer4 https://identityserver4.readthedocs.io/en/release/index.html . 它是由来自leastprivilege https://leastprivilege.com的人创建的ASP.NET Core的开源OpenID Connect / OAuth 2框架 .
您可以使用JWT处理保护API,并将IdentityServer配置为对其用户存储使用ASP.NET Core Identity . 此部分描述了保护API:https://identityserver4.readthedocs.io/en/release/configuration/apis.html
这基本上是如何添加ASP.NET Identity,IdentityServer和配置IdentityServer以在Startup.cs中使用ASP.NET Identity:
然后保护API只是Startup.cs中的几行代码
然后,您必须将角度应用程序配置为IdentityServer的"client",并能够访问您的API "resource" . 有一个关于添加JavaScript客户端的完整教程:https://identityserver4.readthedocs.io/en/release/quickstarts/7_javascript_client.html
ASP.NET Core Identity Framework利用Entity Framework来处理/管理用户身份验证和授权 . 实现后,框架将使用Entity Framework生成Identity Framework所需的数据库和表 . 因此,在使用Identity Framework编写用于用户管理的api /逻辑时,您将不得不使用EF . 对于所有其他模型/实体,您可以使用自己的数据库(与身份数据库分开),并仍然选择使用EF作为该部分,但这取决于您 .
这也取决于您并且受支持但不是强制性的 .