首页 文章

asp.net核心身份api

提问于
浏览
3

我刚开始学习asp.net核心 . 我想创建一个简单的Web应用程序,我将在asp.net核心中有一个rest API,然后是一个单独的前端,有一些角度消耗该API .

我试图弄清楚ASP.NET核心身份和cookie /令牌认证有点困难......

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

谢谢你的帮助!

2 回答

  • 1

    我'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:

    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();
    }
    

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

  • 0

    我可以创建一个API并使用Entity Framework进行数据库处理和ASP.NET Core Identity来处理用户和授权的创建和管理吗?:

    ASP.NET Core Identity Framework利用Entity Framework来处理/管理用户身份验证和授权 . 实现后,框架将使用Entity Framework生成Identity Framework所需的数据库和表 . 因此,在使用Identity Framework编写用于用户管理的api /逻辑时,您将不得不使用EF . 对于所有其他模型/实体,您可以使用自己的数据库(与身份数据库分开),并仍然选择使用EF作为该部分,但这取决于您 .

    我还必须使用一些JWT,OAuth或类似的东西吗?

    这也取决于您并且受支持但不是强制性的 .

相关问题