我刚刚开始学习asp.net核心。我想创建一个简单的web应用程序,在那里我会有一个asp.net核心的rest API,然后与一些角度消费该API的单独前端。
我只是在尝试弄清楚ASP.NET核心身份和cookie/token身份验证时遇到了一点麻烦……
我的问题很简单:我可以创建一个应用程序接口,并使用实体框架来处理数据库处理和ASP.NET核心身份来处理创建和管理用户和授权吗?我还需要使用一些JWT,OAuth或者类似的东西吗?只是这一切对我来说都是超级新鲜的,我感到困惑,因为每个例子/教程都以不同的方式展示它,我变得非常困惑……
谢谢你的帮助!
发布于 2017-02-19 01:11:13
我正在做一个非常相似的项目。查看IdentityServer4 https://identityserver4.readthedocs.io/en/release/index.html。这是一个开源的OpenID连接/OAUTH2框架,用于ASP.NET核心,由至少特权https://leastprivilege.com的人创建。
您可以使用ASP.NET来保护您的API,并将JWT配置为将JWT核心标识用于其用户存储。本节介绍如何保护接口:https://identityserver4.readthedocs.io/en/release/configuration/apis.html
这基本上就是如何添加ASP.NET标识、IdentityServer和配置IdentityServer以在Startup.cs中使用ASP.NET标识的方法:
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>();
}
然后在Startup.cs中只需几行代码就可以保护API。
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
发布于 2017-03-08 22:02:52
我是否可以创建一个应用程序接口,并使用实体框架来处理数据库处理和ASP.NET核心标识来处理创建和管理用户和授权?:
ASP.NET核心身份框架利用实体框架来处理/管理用户身份验证和授权。实现后,框架将使用实体框架生成Identity Framework所需的数据库和表。因此,在使用Identity Framework编写用于用户管理的api/逻辑时,您必须使用EF。对于所有其他模型/实体,您可以只使用您自己的数据库(独立于身份数据库),并仍然选择为该部分使用EF,但这取决于您。
我还需要使用一些JWT,OAuth或者类似的东西吗?
这也取决于您,这是受支持的,但不是强制的。
https://stackoverflow.com/questions/41589749
复制相似问题