diff --git a/Verax_API_EF/Verax_API_EF/API/API.csproj b/Verax_API_EF/Verax_API_EF/API/API.csproj
index 1a9894b..263970e 100644
--- a/Verax_API_EF/Verax_API_EF/API/API.csproj
+++ b/Verax_API_EF/Verax_API_EF/API/API.csproj
@@ -11,11 +11,11 @@
-
all
runtime; build; native; contentfiles; analyzers; buildtransitive
+
all
diff --git a/Verax_API_EF/Verax_API_EF/API/Entity_FrameWork.Article.db b/Verax_API_EF/Verax_API_EF/API/Entity_FrameWork.Article.db
index 175a9e3..c5f5399 100644
Binary files a/Verax_API_EF/Verax_API_EF/API/Entity_FrameWork.Article.db and b/Verax_API_EF/Verax_API_EF/API/Entity_FrameWork.Article.db differ
diff --git a/Verax_API_EF/Verax_API_EF/API/Entity_FrameWork.Article.db-shm b/Verax_API_EF/Verax_API_EF/API/Entity_FrameWork.Article.db-shm
index d5fc9fb..fe9ac28 100644
Binary files a/Verax_API_EF/Verax_API_EF/API/Entity_FrameWork.Article.db-shm and b/Verax_API_EF/Verax_API_EF/API/Entity_FrameWork.Article.db-shm differ
diff --git a/Verax_API_EF/Verax_API_EF/API/Entity_FrameWork.Article.db-wal b/Verax_API_EF/Verax_API_EF/API/Entity_FrameWork.Article.db-wal
index 7605da6..e69de29 100644
Binary files a/Verax_API_EF/Verax_API_EF/API/Entity_FrameWork.Article.db-wal and b/Verax_API_EF/Verax_API_EF/API/Entity_FrameWork.Article.db-wal differ
diff --git a/Verax_API_EF/Verax_API_EF/API/Program.cs b/Verax_API_EF/Verax_API_EF/API/Program.cs
index 06fffd8..63c6025 100644
--- a/Verax_API_EF/Verax_API_EF/API/Program.cs
+++ b/Verax_API_EF/Verax_API_EF/API/Program.cs
@@ -1,20 +1,23 @@
using API_Services;
using DbContextLib;
using DbDataManager;
+using Microsoft.AspNetCore.Identity;
+using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
+using Microsoft.OpenApi.Models;
using Model;
using StubbedContextLib;
var builder = WebApplication.CreateBuilder(args);
+// Add services to the container.
+// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
-// Add services to the container.
-// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddControllers();
+builder.Services.AddSwaggerGen();
builder.Services.AddEndpointsApiExplorer();
-builder.Services.AddSwaggerGen();
builder.Services.AddDbContext(options =>
{
@@ -23,10 +26,54 @@ builder.Services.AddDbContext(options =>
});
builder.Services.AddScoped();
+// Add Authorization
+builder.Services.AddDbContext(
+ options => options.UseInMemoryDatabase("AppDb"));
+builder.Services.AddAuthorization();
+builder.Services.AddIdentityApiEndpoints()
+ .AddEntityFrameworkStores();
+
+
+
+
+
+
+
+builder.Services.AddSwaggerGen(option =>
+{
+ option.SwaggerDoc("v1", new OpenApiInfo { Title = "Demo API", Version = "v1" });
+ option.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
+ {
+ In = ParameterLocation.Header,
+ Description = "Please enter a valid token",
+ Name = "Authorization",
+ Type = SecuritySchemeType.Http,
+ BearerFormat = "JWT",
+ Scheme = "Bearer"
+ });
+ option.AddSecurityRequirement(new OpenApiSecurityRequirement
+ {
+ {
+ new OpenApiSecurityScheme
+ {
+ Reference = new OpenApiReference
+ {
+ Type=ReferenceType.SecurityScheme,
+ Id="Bearer"
+ }
+ },
+ new string[]{}
+ }
+ });
+});
var app = builder.Build();
+app.MapIdentityApi();
+
+app.MapSwagger().RequireAuthorization();
+
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
@@ -35,12 +82,28 @@ if (app.Environment.IsDevelopment())
}
app.UseHttpsRedirection();
+app.UseAuthorization();
app.MapControllers();
using var scoped = app.Services.CreateScope();
var libraryContext = scoped.ServiceProvider.GetService();
//libraryContext.Database.EnsureCreated();
libraryContext.Database.Migrate();
+
+app.MapPost("/logout", async (SignInManager signInManager,
+ [FromBody]object empty) =>
+ {
+ if (empty != null)
+ {
+ await signInManager.SignOutAsync();
+ return Results.Ok();
+ }
+ return Results.Unauthorized();
+ })
+ .WithOpenApi()
+ .RequireAuthorization();
+
+
app.Run();
diff --git a/Verax_API_EF/Verax_API_EF/API/log.txt b/Verax_API_EF/Verax_API_EF/API/log.txt
index 7d66f59..50bfd6e 100644
--- a/Verax_API_EF/Verax_API_EF/API/log.txt
+++ b/Verax_API_EF/Verax_API_EF/API/log.txt
@@ -32,3 +32,109 @@ info: 03/15/2024 17:08:33.305 RelationalEventId.CommandExecuted[20101] (Microsof
Executed DbCommand (0ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
SELECT "a"."Id", "a"."Author", "a"."DatePublished", "a"."Description", "a"."LectureTime", "a"."Title"
FROM "ArticleSet" AS "a"
+info: 03/16/2024 13:47:23.492 RelationalEventId.CommandExecuted[20101] (Microsoft.EntityFrameworkCore.Database.Command)
+ Executed DbCommand (6ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
+ SELECT COUNT(*) FROM "sqlite_master" WHERE "name" = '__EFMigrationsHistory' AND "type" = 'table';
+info: 03/16/2024 13:47:23.496 RelationalEventId.CommandExecuted[20101] (Microsoft.EntityFrameworkCore.Database.Command)
+ Executed DbCommand (0ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
+ SELECT COUNT(*) FROM "sqlite_master" WHERE "name" = '__EFMigrationsHistory' AND "type" = 'table';
+info: 03/16/2024 13:47:23.503 RelationalEventId.CommandExecuted[20101] (Microsoft.EntityFrameworkCore.Database.Command)
+ Executed DbCommand (0ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
+ SELECT "MigrationId", "ProductVersion"
+ FROM "__EFMigrationsHistory"
+ ORDER BY "MigrationId";
+info: 03/16/2024 13:47:23.511 RelationalEventId.MigrationsNotApplied[20405] (Microsoft.EntityFrameworkCore.Migrations)
+ No migrations were applied. The database is already up to date.
+info: 03/16/2024 13:49:15.334 RelationalEventId.CommandExecuted[20101] (Microsoft.EntityFrameworkCore.Database.Command)
+ Executed DbCommand (0ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
+ SELECT "a"."Id", "a"."Author", "a"."DatePublished", "a"."Description", "a"."LectureTime", "a"."Title"
+ FROM "ArticleSet" AS "a"
+info: 03/16/2024 13:50:41.465 RelationalEventId.CommandExecuted[20101] (Microsoft.EntityFrameworkCore.Database.Command)
+ Executed DbCommand (5ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
+ SELECT COUNT(*) FROM "sqlite_master" WHERE "name" = '__EFMigrationsHistory' AND "type" = 'table';
+info: 03/16/2024 13:50:41.469 RelationalEventId.CommandExecuted[20101] (Microsoft.EntityFrameworkCore.Database.Command)
+ Executed DbCommand (0ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
+ SELECT COUNT(*) FROM "sqlite_master" WHERE "name" = '__EFMigrationsHistory' AND "type" = 'table';
+info: 03/16/2024 13:50:41.475 RelationalEventId.CommandExecuted[20101] (Microsoft.EntityFrameworkCore.Database.Command)
+ Executed DbCommand (0ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
+ SELECT "MigrationId", "ProductVersion"
+ FROM "__EFMigrationsHistory"
+ ORDER BY "MigrationId";
+info: 03/16/2024 13:50:41.483 RelationalEventId.MigrationsNotApplied[20405] (Microsoft.EntityFrameworkCore.Migrations)
+ No migrations were applied. The database is already up to date.
+info: 03/16/2024 13:53:25.287 RelationalEventId.CommandExecuted[20101] (Microsoft.EntityFrameworkCore.Database.Command)
+ Executed DbCommand (6ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
+ SELECT COUNT(*) FROM "sqlite_master" WHERE "name" = '__EFMigrationsHistory' AND "type" = 'table';
+info: 03/16/2024 13:53:25.291 RelationalEventId.CommandExecuted[20101] (Microsoft.EntityFrameworkCore.Database.Command)
+ Executed DbCommand (0ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
+ SELECT COUNT(*) FROM "sqlite_master" WHERE "name" = '__EFMigrationsHistory' AND "type" = 'table';
+info: 03/16/2024 13:53:25.298 RelationalEventId.CommandExecuted[20101] (Microsoft.EntityFrameworkCore.Database.Command)
+ Executed DbCommand (0ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
+ SELECT "MigrationId", "ProductVersion"
+ FROM "__EFMigrationsHistory"
+ ORDER BY "MigrationId";
+info: 03/16/2024 13:53:25.307 RelationalEventId.MigrationsNotApplied[20405] (Microsoft.EntityFrameworkCore.Migrations)
+ No migrations were applied. The database is already up to date.
+warn: 03/16/2024 13:55:55.456 CoreEventId.RowLimitingOperationWithoutOrderByWarning[10102] (Microsoft.EntityFrameworkCore.Query)
+ The query uses a row limiting operator ('Skip'/'Take') without an 'OrderBy' operator. This may lead to unpredictable results. If the 'Distinct' operator is used after 'OrderBy', then make sure to use the 'OrderBy' operator after 'Distinct' as the ordering would otherwise get erased.
+info: 03/16/2024 13:55:55.509 RelationalEventId.CommandExecuted[20101] (Microsoft.EntityFrameworkCore.Database.Command)
+ Executed DbCommand (2ms) [Parameters=[@__p_0='?' (DbType = Int32)], CommandType='Text', CommandTimeout='30']
+ SELECT "f"."Id", "f"."DatePublication", "f"."Link", "f"."Theme", "f"."UserEntityPseudo"
+ FROM "FormSet" AS "f"
+ LIMIT -1 OFFSET @__p_0
+info: 03/16/2024 13:58:19.293 RelationalEventId.CommandExecuted[20101] (Microsoft.EntityFrameworkCore.Database.Command)
+ Executed DbCommand (6ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
+ SELECT COUNT(*) FROM "sqlite_master" WHERE "name" = '__EFMigrationsHistory' AND "type" = 'table';
+info: 03/16/2024 13:58:19.297 RelationalEventId.CommandExecuted[20101] (Microsoft.EntityFrameworkCore.Database.Command)
+ Executed DbCommand (0ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
+ SELECT COUNT(*) FROM "sqlite_master" WHERE "name" = '__EFMigrationsHistory' AND "type" = 'table';
+info: 03/16/2024 13:58:19.304 RelationalEventId.CommandExecuted[20101] (Microsoft.EntityFrameworkCore.Database.Command)
+ Executed DbCommand (0ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
+ SELECT "MigrationId", "ProductVersion"
+ FROM "__EFMigrationsHistory"
+ ORDER BY "MigrationId";
+info: 03/16/2024 13:58:19.312 RelationalEventId.MigrationsNotApplied[20405] (Microsoft.EntityFrameworkCore.Migrations)
+ No migrations were applied. The database is already up to date.
+info: 03/16/2024 13:59:32.285 RelationalEventId.CommandExecuted[20101] (Microsoft.EntityFrameworkCore.Database.Command)
+ Executed DbCommand (6ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
+ SELECT COUNT(*) FROM "sqlite_master" WHERE "name" = '__EFMigrationsHistory' AND "type" = 'table';
+info: 03/16/2024 13:59:32.289 RelationalEventId.CommandExecuted[20101] (Microsoft.EntityFrameworkCore.Database.Command)
+ Executed DbCommand (0ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
+ SELECT COUNT(*) FROM "sqlite_master" WHERE "name" = '__EFMigrationsHistory' AND "type" = 'table';
+info: 03/16/2024 13:59:32.296 RelationalEventId.CommandExecuted[20101] (Microsoft.EntityFrameworkCore.Database.Command)
+ Executed DbCommand (0ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
+ SELECT "MigrationId", "ProductVersion"
+ FROM "__EFMigrationsHistory"
+ ORDER BY "MigrationId";
+info: 03/16/2024 13:59:32.303 RelationalEventId.MigrationsNotApplied[20405] (Microsoft.EntityFrameworkCore.Migrations)
+ No migrations were applied. The database is already up to date.
+info: 03/16/2024 14:00:53.457 RelationalEventId.CommandExecuted[20101] (Microsoft.EntityFrameworkCore.Database.Command)
+ Executed DbCommand (5ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
+ SELECT COUNT(*) FROM "sqlite_master" WHERE "name" = '__EFMigrationsHistory' AND "type" = 'table';
+info: 03/16/2024 14:00:53.462 RelationalEventId.CommandExecuted[20101] (Microsoft.EntityFrameworkCore.Database.Command)
+ Executed DbCommand (0ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
+ SELECT COUNT(*) FROM "sqlite_master" WHERE "name" = '__EFMigrationsHistory' AND "type" = 'table';
+info: 03/16/2024 14:00:53.468 RelationalEventId.CommandExecuted[20101] (Microsoft.EntityFrameworkCore.Database.Command)
+ Executed DbCommand (0ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
+ SELECT "MigrationId", "ProductVersion"
+ FROM "__EFMigrationsHistory"
+ ORDER BY "MigrationId";
+info: 03/16/2024 14:00:53.476 RelationalEventId.MigrationsNotApplied[20405] (Microsoft.EntityFrameworkCore.Migrations)
+ No migrations were applied. The database is already up to date.
+info: 03/16/2024 14:01:22.357 RelationalEventId.CommandExecuted[20101] (Microsoft.EntityFrameworkCore.Database.Command)
+ Executed DbCommand (0ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
+ SELECT "a"."Id", "a"."Author", "a"."DatePublished", "a"."Description", "a"."LectureTime", "a"."Title"
+ FROM "ArticleSet" AS "a"
+info: 03/16/2024 14:02:47.267 RelationalEventId.CommandExecuted[20101] (Microsoft.EntityFrameworkCore.Database.Command)
+ Executed DbCommand (0ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
+ SELECT "a"."Id", "a"."Author", "a"."DatePublished", "a"."Description", "a"."LectureTime", "a"."Title"
+ FROM "ArticleSet" AS "a"
+info: 03/16/2024 14:03:10.579 RelationalEventId.CommandExecuted[20101] (Microsoft.EntityFrameworkCore.Database.Command)
+ Executed DbCommand (0ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
+ SELECT "a"."Id", "a"."Author", "a"."DatePublished", "a"."Description", "a"."LectureTime", "a"."Title"
+ FROM "ArticleSet" AS "a"
+info: 03/16/2024 14:03:15.675 RelationalEventId.CommandExecuted[20101] (Microsoft.EntityFrameworkCore.Database.Command)
+ Executed DbCommand (0ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
+ SELECT "a"."Id", "a"."Author", "a"."DatePublished", "a"."Description", "a"."LectureTime", "a"."Title"
+ FROM "ArticleSet" AS "a"
+ ORDER BY "a"."Title"
diff --git a/Verax_API_EF/Verax_API_EF/API_DbDataManager/API_DbDataManager.csproj b/Verax_API_EF/Verax_API_EF/API_DbDataManager/API_DbDataManager.csproj
index a020201..7933319 100644
--- a/Verax_API_EF/Verax_API_EF/API_DbDataManager/API_DbDataManager.csproj
+++ b/Verax_API_EF/Verax_API_EF/API_DbDataManager/API_DbDataManager.csproj
@@ -15,7 +15,7 @@
-
+
all
diff --git a/Verax_API_EF/Verax_API_EF/DbContextLib/ApplicationDbContext.cs b/Verax_API_EF/Verax_API_EF/DbContextLib/ApplicationDbContext.cs
new file mode 100644
index 0000000..66e1b58
--- /dev/null
+++ b/Verax_API_EF/Verax_API_EF/DbContextLib/ApplicationDbContext.cs
@@ -0,0 +1,12 @@
+using Microsoft.AspNetCore.Identity;
+using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore;
+
+namespace DbContextLib;
+
+public class ApplicationDbContext : IdentityDbContext
+{
+ public ApplicationDbContext(DbContextOptions options) :
+ base(options)
+ { }
+}
\ No newline at end of file
diff --git a/Verax_API_EF/Verax_API_EF/DbContextLib/DbContextLib.csproj b/Verax_API_EF/Verax_API_EF/DbContextLib/DbContextLib.csproj
index ad20d53..540a3c5 100644
--- a/Verax_API_EF/Verax_API_EF/DbContextLib/DbContextLib.csproj
+++ b/Verax_API_EF/Verax_API_EF/DbContextLib/DbContextLib.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/Verax_API_EF/Verax_API_EF/Entities/Entities.csproj b/Verax_API_EF/Verax_API_EF/Entities/Entities.csproj
index e547c5d..dd967bc 100644
--- a/Verax_API_EF/Verax_API_EF/Entities/Entities.csproj
+++ b/Verax_API_EF/Verax_API_EF/Entities/Entities.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/Verax_API_EF/Verax_API_EF/StubbedContextLib/StubbedContextLib.csproj b/Verax_API_EF/Verax_API_EF/StubbedContextLib/StubbedContextLib.csproj
index 6c03da9..35518c0 100644
--- a/Verax_API_EF/Verax_API_EF/StubbedContextLib/StubbedContextLib.csproj
+++ b/Verax_API_EF/Verax_API_EF/StubbedContextLib/StubbedContextLib.csproj
@@ -12,7 +12,7 @@
-
+
diff --git a/Verax_API_EF/Verax_API_EF/Test_Console_EF/Test_Console_EF.csproj b/Verax_API_EF/Verax_API_EF/Test_Console_EF/Test_Console_EF.csproj
index bd068dc..3a5c52b 100644
--- a/Verax_API_EF/Verax_API_EF/Test_Console_EF/Test_Console_EF.csproj
+++ b/Verax_API_EF/Verax_API_EF/Test_Console_EF/Test_Console_EF.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/Verax_API_EF/Verax_API_EF/Unit_Test_EF/Unit_Test_EF.csproj b/Verax_API_EF/Verax_API_EF/Unit_Test_EF/Unit_Test_EF.csproj
index fc4de9b..8cbb5d2 100644
--- a/Verax_API_EF/Verax_API_EF/Unit_Test_EF/Unit_Test_EF.csproj
+++ b/Verax_API_EF/Verax_API_EF/Unit_Test_EF/Unit_Test_EF.csproj
@@ -12,7 +12,7 @@
-
+