fix security pour la WebAPI : ajout dbContext pour acceder à la base ou sont stocker les tokens et ajout des nuggets necessaire (Identity.EntityFramework et EntityFrameworkCore.InMemory. Changements aportés dans le program.cs (utilisation du context avec une base de données en mémoire InMemory et utilisation du EndPoint)

pull/23/head
Victor GABORIT 1 year ago
parent 8ffb40d815
commit 0611a5ca3e

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
@ -8,11 +8,13 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="8.0.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="8.0.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>

@ -52,7 +52,8 @@ namespace API.Controllers
[HttpPut]
public IActionResult CreateUser(string username, string password, string email, bool isAdmin)
{
return Ok(_userDataService.CreateUser(username, password, email, isAdmin));
// return Ok(_userDataService.CreateUser(username, password, email, isAdmin));
return CreatedAtAction(nameof(GetUsers), _userDataService.CreateUser(username, password, email, isAdmin));
}
}
}

@ -1,3 +1,4 @@
using API;
using DbContextLib;
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
@ -14,9 +15,11 @@ builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
builder.Services.AddScoped<IDataService, InquiryDataService>();
builder.Services.AddDbContext<DbContext, UserDbContext>();
builder.Services.AddDbContext<WebAPIDbContext>(options => options.UseInMemoryDatabase("appDb"));
builder.Services.AddIdentityApiEndpoints<IdentityUser>().AddEntityFrameworkStores<WebAPIDbContext>();
builder.Services.AddAuthorization();
builder.Services.AddIdentityApiEndpoints<IdentityUser>()
.AddEntityFrameworkStores<UserDbContext>();
//builder.Services.AddIdentityApiEndpoints<IdentityUser>()
// .AddEntityFrameworkStores<UserDbContext>();
builder.Services.AddSwaggerGen(option =>
{
option.SwaggerDoc("v1", new OpenApiInfo { Title = "Demo API", Version = "v1" });

@ -0,0 +1,11 @@
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
namespace API
{
public class WebAPIDbContext : IdentityDbContext<IdentityUser>
{
public WebAPIDbContext(DbContextOptions<WebAPIDbContext> options) : base(options) { }
}
}
Loading…
Cancel
Save