我刚开始学习asp.net核心。我想创建一个简单的Web应用程序,我将在asp.net核心中有一个rest API,然后是一个单独的前端,有一些角度消耗该API。
我试图弄清楚ASP.NET核心身份和cookie /令牌身份验证有点困难......
我的问题非常简单:我是否可以创建一个API并使用Entity Framework进行数据库处理和ASP.NET Core Identity来处理用户和授权的创建和管理?我是否还必须使用一些JWT,OAuth或类似的东西?只是这对我来说都是超级新手而且我感到困惑,因为每个示例/教程都以不同的方式显示它并且我变得非常困惑......
感谢您的帮助!
答案 0 :(得分:1)
我正在开展一个非常相似的项目。查看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:
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddIdentity<ApplicationUser, IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
services.AddMvc();
// Adds IdentityServer
services.AddIdentityServer()
.AddAspNetIdentity<ApplicationUser>();
}
然后保护API只是Startup.cs中的几行代码
public void Configure(IApplicationBuilder app)
{
app.UseIdentityServerAuthentication(new IdentityServerAuthenticationOptions
{
Authority = "https://demo.identityserver.io",
AllowedScopes = { "api1" },
});
app.UseMvc();
}
然后你必须将你的角度应用程序配置为&#34;客户端&#34; IdentityServer能够访问您的API&#34;资源&#34;。有一个关于添加JavaScript客户端的完整教程:https://identityserver4.readthedocs.io/en/release/quickstarts/7_javascript_client.html
答案 1 :(得分:0)
我可以创建一个API并使用Entity Framework for database 处理和ASP.NET核心标识来处理创建和管理 用户和授权?:
ASP.NET核心身份框架利用实体框架来处理/管理用户身份验证和授权。实现后,框架将使用Entity Framework生成Identity Framework所需的数据库和表。因此,在使用Identity Framework编写用于用户管理的api /逻辑时,您将不得不使用EF。对于所有其他模型/实体,您可以使用自己的数据库(与身份数据库分开),并仍然选择使用EF作为该部分,但这取决于您。
我是否还必须使用一些JWT,OAuth或类似的东西?
这也取决于您并且受到支持,但不是强制性的。