gpt4 book ai didi

asp.net-mvc - asp.net core 身份 + api

转载 作者:行者123 更新时间:2023-12-02 16:06:12 24 4
gpt4 key购买 nike

我刚刚开始学习asp.net core。我想创建一个简单的 Web 应用程序,其中我将在 ASP.NET Core 中拥有一个 REST API,然后是一个单独的前端,其中有一些使用该 API 的角度。

我在尝试弄清楚 ASP.NET Core Identity 和 cookie/token 身份验证时遇到了一点困难...

我的问题非常简单:我可以只创建一个 API 并使用 Entity Framework 进行数据库处理并使用 ASP.NET Core Identity 来处理创建和管理用户及授权吗?我是否还必须使用一些 JWT、OAuth 或类似的东西?只是这对我来说都是 super 新的,我很困惑,因为每个示例/教程都以不同的方式展示它,我很困惑......

感谢您的帮助!

最佳答案

我正在开发一个非常相似的项目。查看 IdentityServer4 https://identityserver4.readthedocs.io/en/release/index.html 。它是一个用于 ASP.NET Core 的开源 OpenID Connect/OAuth 2 框架,由来自leastprivilege https://leastprivilege.com 的人们创建。 .

您可以使用 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();
}

然后,您必须将 Angular 应用程序配置为 IdentityServer 的“客户端”,并能够访问您的 API“资源”。有一个关于添加 JavaScript 客户端的完整教程:https://identityserver4.readthedocs.io/en/release/quickstarts/7_javascript_client.html

关于asp.net-mvc - asp.net core 身份 + api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41589749/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com