feat(auth): add user and role models with EF Core migrations
This commit is contained in:
parent
9b389beafb
commit
9f414ccb74
31
Data/ApplicationDbContext.cs
Normal file
31
Data/ApplicationDbContext.cs
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
using Fengling.AuthService.Models;
|
||||||
|
using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
|
||||||
|
namespace Fengling.AuthService.Data;
|
||||||
|
|
||||||
|
public class ApplicationDbContext : IdentityDbContext<ApplicationUser, ApplicationRole, long>
|
||||||
|
{
|
||||||
|
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
|
||||||
|
: base(options)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnModelCreating(ModelBuilder builder)
|
||||||
|
{
|
||||||
|
base.OnModelCreating(builder);
|
||||||
|
|
||||||
|
builder.Entity<ApplicationUser>(entity =>
|
||||||
|
{
|
||||||
|
entity.Property(e => e.RealName).HasMaxLength(100);
|
||||||
|
entity.Property(e => e.Phone).HasMaxLength(20);
|
||||||
|
entity.HasIndex(e => e.TenantId);
|
||||||
|
entity.HasIndex(e => e.Phone).IsUnique();
|
||||||
|
});
|
||||||
|
|
||||||
|
builder.Entity<ApplicationRole>(entity =>
|
||||||
|
{
|
||||||
|
entity.Property(e => e.Description).HasMaxLength(200);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
16
Data/ApplicationDbContextFactory.cs
Normal file
16
Data/ApplicationDbContextFactory.cs
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
using Fengling.AuthService.Data;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using Microsoft.EntityFrameworkCore.Design;
|
||||||
|
|
||||||
|
namespace Fengling.AuthService.Data;
|
||||||
|
|
||||||
|
public class ApplicationDbContextFactory : IDesignTimeDbContextFactory<ApplicationDbContext>
|
||||||
|
{
|
||||||
|
public ApplicationDbContext CreateDbContext(string[] args)
|
||||||
|
{
|
||||||
|
var optionsBuilder = new DbContextOptionsBuilder<ApplicationDbContext>();
|
||||||
|
optionsBuilder.UseNpgsql("Host=192.168.100.10;Port=5432;Database=fengling_auth;Username=movingsam;Password=sl52788542");
|
||||||
|
|
||||||
|
return new ApplicationDbContext(optionsBuilder.Options);
|
||||||
|
}
|
||||||
|
}
|
||||||
312
Data/Migrations/20260201153600_InitialCreate.Designer.cs
generated
Normal file
312
Data/Migrations/20260201153600_InitialCreate.Designer.cs
generated
Normal file
@ -0,0 +1,312 @@
|
|||||||
|
// <auto-generated />
|
||||||
|
using System;
|
||||||
|
using Fengling.AuthService.Data;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||||
|
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||||
|
|
||||||
|
#nullable disable
|
||||||
|
|
||||||
|
namespace Fengling.AuthService.Data.Migrations
|
||||||
|
{
|
||||||
|
[DbContext(typeof(ApplicationDbContext))]
|
||||||
|
[Migration("20260201153600_InitialCreate")]
|
||||||
|
partial class InitialCreate
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
||||||
|
{
|
||||||
|
#pragma warning disable 612, 618
|
||||||
|
modelBuilder
|
||||||
|
.HasAnnotation("ProductVersion", "9.0.10")
|
||||||
|
.HasAnnotation("Relational:MaxIdentifierLength", 63);
|
||||||
|
|
||||||
|
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
|
||||||
|
|
||||||
|
modelBuilder.Entity("Fengling.AuthService.Models.ApplicationRole", b =>
|
||||||
|
{
|
||||||
|
b.Property<long>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("bigint");
|
||||||
|
|
||||||
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
|
||||||
|
|
||||||
|
b.Property<string>("ConcurrencyStamp")
|
||||||
|
.IsConcurrencyToken()
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.Property<DateTime>("CreatedTime")
|
||||||
|
.HasColumnType("timestamp with time zone");
|
||||||
|
|
||||||
|
b.Property<string>("Description")
|
||||||
|
.HasMaxLength(200)
|
||||||
|
.HasColumnType("character varying(200)");
|
||||||
|
|
||||||
|
b.Property<string>("Name")
|
||||||
|
.HasMaxLength(256)
|
||||||
|
.HasColumnType("character varying(256)");
|
||||||
|
|
||||||
|
b.Property<string>("NormalizedName")
|
||||||
|
.HasMaxLength(256)
|
||||||
|
.HasColumnType("character varying(256)");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("NormalizedName")
|
||||||
|
.IsUnique()
|
||||||
|
.HasDatabaseName("RoleNameIndex");
|
||||||
|
|
||||||
|
b.ToTable("AspNetRoles", (string)null);
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Fengling.AuthService.Models.ApplicationUser", b =>
|
||||||
|
{
|
||||||
|
b.Property<long>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("bigint");
|
||||||
|
|
||||||
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
|
||||||
|
|
||||||
|
b.Property<int>("AccessFailedCount")
|
||||||
|
.HasColumnType("integer");
|
||||||
|
|
||||||
|
b.Property<string>("ConcurrencyStamp")
|
||||||
|
.IsConcurrencyToken()
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.Property<DateTime>("CreatedTime")
|
||||||
|
.HasColumnType("timestamp with time zone");
|
||||||
|
|
||||||
|
b.Property<string>("Email")
|
||||||
|
.HasMaxLength(256)
|
||||||
|
.HasColumnType("character varying(256)");
|
||||||
|
|
||||||
|
b.Property<bool>("EmailConfirmed")
|
||||||
|
.HasColumnType("boolean");
|
||||||
|
|
||||||
|
b.Property<bool>("IsDeleted")
|
||||||
|
.HasColumnType("boolean");
|
||||||
|
|
||||||
|
b.Property<bool>("LockoutEnabled")
|
||||||
|
.HasColumnType("boolean");
|
||||||
|
|
||||||
|
b.Property<DateTimeOffset?>("LockoutEnd")
|
||||||
|
.HasColumnType("timestamp with time zone");
|
||||||
|
|
||||||
|
b.Property<string>("NormalizedEmail")
|
||||||
|
.HasMaxLength(256)
|
||||||
|
.HasColumnType("character varying(256)");
|
||||||
|
|
||||||
|
b.Property<string>("NormalizedUserName")
|
||||||
|
.HasMaxLength(256)
|
||||||
|
.HasColumnType("character varying(256)");
|
||||||
|
|
||||||
|
b.Property<string>("PasswordHash")
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.Property<string>("Phone")
|
||||||
|
.HasMaxLength(20)
|
||||||
|
.HasColumnType("character varying(20)");
|
||||||
|
|
||||||
|
b.Property<string>("PhoneNumber")
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.Property<bool>("PhoneNumberConfirmed")
|
||||||
|
.HasColumnType("boolean");
|
||||||
|
|
||||||
|
b.Property<string>("RealName")
|
||||||
|
.HasMaxLength(100)
|
||||||
|
.HasColumnType("character varying(100)");
|
||||||
|
|
||||||
|
b.Property<string>("SecurityStamp")
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.Property<long>("TenantId")
|
||||||
|
.HasColumnType("bigint");
|
||||||
|
|
||||||
|
b.Property<bool>("TwoFactorEnabled")
|
||||||
|
.HasColumnType("boolean");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("UpdatedTime")
|
||||||
|
.HasColumnType("timestamp with time zone");
|
||||||
|
|
||||||
|
b.Property<string>("UserName")
|
||||||
|
.HasMaxLength(256)
|
||||||
|
.HasColumnType("character varying(256)");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("NormalizedEmail")
|
||||||
|
.HasDatabaseName("EmailIndex");
|
||||||
|
|
||||||
|
b.HasIndex("NormalizedUserName")
|
||||||
|
.IsUnique()
|
||||||
|
.HasDatabaseName("UserNameIndex");
|
||||||
|
|
||||||
|
b.HasIndex("Phone")
|
||||||
|
.IsUnique();
|
||||||
|
|
||||||
|
b.HasIndex("TenantId");
|
||||||
|
|
||||||
|
b.ToTable("AspNetUsers", (string)null);
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<long>", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("integer");
|
||||||
|
|
||||||
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
|
b.Property<string>("ClaimType")
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.Property<string>("ClaimValue")
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.Property<long>("RoleId")
|
||||||
|
.HasColumnType("bigint");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("RoleId");
|
||||||
|
|
||||||
|
b.ToTable("AspNetRoleClaims", (string)null);
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<long>", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("integer");
|
||||||
|
|
||||||
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
|
b.Property<string>("ClaimType")
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.Property<string>("ClaimValue")
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.Property<long>("UserId")
|
||||||
|
.HasColumnType("bigint");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("UserId");
|
||||||
|
|
||||||
|
b.ToTable("AspNetUserClaims", (string)null);
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<long>", b =>
|
||||||
|
{
|
||||||
|
b.Property<string>("LoginProvider")
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.Property<string>("ProviderKey")
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.Property<string>("ProviderDisplayName")
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.Property<long>("UserId")
|
||||||
|
.HasColumnType("bigint");
|
||||||
|
|
||||||
|
b.HasKey("LoginProvider", "ProviderKey");
|
||||||
|
|
||||||
|
b.HasIndex("UserId");
|
||||||
|
|
||||||
|
b.ToTable("AspNetUserLogins", (string)null);
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<long>", b =>
|
||||||
|
{
|
||||||
|
b.Property<long>("UserId")
|
||||||
|
.HasColumnType("bigint");
|
||||||
|
|
||||||
|
b.Property<long>("RoleId")
|
||||||
|
.HasColumnType("bigint");
|
||||||
|
|
||||||
|
b.HasKey("UserId", "RoleId");
|
||||||
|
|
||||||
|
b.HasIndex("RoleId");
|
||||||
|
|
||||||
|
b.ToTable("AspNetUserRoles", (string)null);
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<long>", b =>
|
||||||
|
{
|
||||||
|
b.Property<long>("UserId")
|
||||||
|
.HasColumnType("bigint");
|
||||||
|
|
||||||
|
b.Property<string>("LoginProvider")
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.Property<string>("Name")
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.Property<string>("Value")
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.HasKey("UserId", "LoginProvider", "Name");
|
||||||
|
|
||||||
|
b.ToTable("AspNetUserTokens", (string)null);
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<long>", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Fengling.AuthService.Models.ApplicationRole", null)
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("RoleId")
|
||||||
|
.OnDelete(DeleteBehavior.Cascade)
|
||||||
|
.IsRequired();
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<long>", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Fengling.AuthService.Models.ApplicationUser", null)
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("UserId")
|
||||||
|
.OnDelete(DeleteBehavior.Cascade)
|
||||||
|
.IsRequired();
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<long>", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Fengling.AuthService.Models.ApplicationUser", null)
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("UserId")
|
||||||
|
.OnDelete(DeleteBehavior.Cascade)
|
||||||
|
.IsRequired();
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<long>", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Fengling.AuthService.Models.ApplicationRole", null)
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("RoleId")
|
||||||
|
.OnDelete(DeleteBehavior.Cascade)
|
||||||
|
.IsRequired();
|
||||||
|
|
||||||
|
b.HasOne("Fengling.AuthService.Models.ApplicationUser", null)
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("UserId")
|
||||||
|
.OnDelete(DeleteBehavior.Cascade)
|
||||||
|
.IsRequired();
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<long>", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Fengling.AuthService.Models.ApplicationUser", null)
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("UserId")
|
||||||
|
.OnDelete(DeleteBehavior.Cascade)
|
||||||
|
.IsRequired();
|
||||||
|
});
|
||||||
|
#pragma warning restore 612, 618
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
244
Data/Migrations/20260201153600_InitialCreate.cs
Normal file
244
Data/Migrations/20260201153600_InitialCreate.cs
Normal file
@ -0,0 +1,244 @@
|
|||||||
|
using System;
|
||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||||
|
|
||||||
|
#nullable disable
|
||||||
|
|
||||||
|
namespace Fengling.AuthService.Data.Migrations
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
public partial class InitialCreate : Migration
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Up(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "AspNetRoles",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
Id = table.Column<long>(type: "bigint", nullable: false)
|
||||||
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
||||||
|
Description = table.Column<string>(type: "character varying(200)", maxLength: 200, nullable: true),
|
||||||
|
CreatedTime = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
||||||
|
Name = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true),
|
||||||
|
NormalizedName = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true),
|
||||||
|
ConcurrencyStamp = table.Column<string>(type: "text", nullable: true)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_AspNetRoles", x => x.Id);
|
||||||
|
});
|
||||||
|
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "AspNetUsers",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
Id = table.Column<long>(type: "bigint", nullable: false)
|
||||||
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
||||||
|
RealName = table.Column<string>(type: "character varying(100)", maxLength: 100, nullable: true),
|
||||||
|
Phone = table.Column<string>(type: "character varying(20)", maxLength: 20, nullable: true),
|
||||||
|
TenantId = table.Column<long>(type: "bigint", nullable: false),
|
||||||
|
CreatedTime = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
||||||
|
UpdatedTime = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
|
||||||
|
IsDeleted = table.Column<bool>(type: "boolean", nullable: false),
|
||||||
|
UserName = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true),
|
||||||
|
NormalizedUserName = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true),
|
||||||
|
Email = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true),
|
||||||
|
NormalizedEmail = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true),
|
||||||
|
EmailConfirmed = table.Column<bool>(type: "boolean", nullable: false),
|
||||||
|
PasswordHash = table.Column<string>(type: "text", nullable: true),
|
||||||
|
SecurityStamp = table.Column<string>(type: "text", nullable: true),
|
||||||
|
ConcurrencyStamp = table.Column<string>(type: "text", nullable: true),
|
||||||
|
PhoneNumber = table.Column<string>(type: "text", nullable: true),
|
||||||
|
PhoneNumberConfirmed = table.Column<bool>(type: "boolean", nullable: false),
|
||||||
|
TwoFactorEnabled = table.Column<bool>(type: "boolean", nullable: false),
|
||||||
|
LockoutEnd = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: true),
|
||||||
|
LockoutEnabled = table.Column<bool>(type: "boolean", nullable: false),
|
||||||
|
AccessFailedCount = table.Column<int>(type: "integer", nullable: false)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_AspNetUsers", x => x.Id);
|
||||||
|
});
|
||||||
|
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "AspNetRoleClaims",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
Id = table.Column<int>(type: "integer", nullable: false)
|
||||||
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
||||||
|
RoleId = table.Column<long>(type: "bigint", nullable: false),
|
||||||
|
ClaimType = table.Column<string>(type: "text", nullable: true),
|
||||||
|
ClaimValue = table.Column<string>(type: "text", nullable: true)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_AspNetRoleClaims", x => x.Id);
|
||||||
|
table.ForeignKey(
|
||||||
|
name: "FK_AspNetRoleClaims_AspNetRoles_RoleId",
|
||||||
|
column: x => x.RoleId,
|
||||||
|
principalTable: "AspNetRoles",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
});
|
||||||
|
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "AspNetUserClaims",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
Id = table.Column<int>(type: "integer", nullable: false)
|
||||||
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
||||||
|
UserId = table.Column<long>(type: "bigint", nullable: false),
|
||||||
|
ClaimType = table.Column<string>(type: "text", nullable: true),
|
||||||
|
ClaimValue = table.Column<string>(type: "text", nullable: true)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_AspNetUserClaims", x => x.Id);
|
||||||
|
table.ForeignKey(
|
||||||
|
name: "FK_AspNetUserClaims_AspNetUsers_UserId",
|
||||||
|
column: x => x.UserId,
|
||||||
|
principalTable: "AspNetUsers",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
});
|
||||||
|
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "AspNetUserLogins",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
LoginProvider = table.Column<string>(type: "text", nullable: false),
|
||||||
|
ProviderKey = table.Column<string>(type: "text", nullable: false),
|
||||||
|
ProviderDisplayName = table.Column<string>(type: "text", nullable: true),
|
||||||
|
UserId = table.Column<long>(type: "bigint", nullable: false)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_AspNetUserLogins", x => new { x.LoginProvider, x.ProviderKey });
|
||||||
|
table.ForeignKey(
|
||||||
|
name: "FK_AspNetUserLogins_AspNetUsers_UserId",
|
||||||
|
column: x => x.UserId,
|
||||||
|
principalTable: "AspNetUsers",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
});
|
||||||
|
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "AspNetUserRoles",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
UserId = table.Column<long>(type: "bigint", nullable: false),
|
||||||
|
RoleId = table.Column<long>(type: "bigint", nullable: false)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_AspNetUserRoles", x => new { x.UserId, x.RoleId });
|
||||||
|
table.ForeignKey(
|
||||||
|
name: "FK_AspNetUserRoles_AspNetRoles_RoleId",
|
||||||
|
column: x => x.RoleId,
|
||||||
|
principalTable: "AspNetRoles",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
table.ForeignKey(
|
||||||
|
name: "FK_AspNetUserRoles_AspNetUsers_UserId",
|
||||||
|
column: x => x.UserId,
|
||||||
|
principalTable: "AspNetUsers",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
});
|
||||||
|
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "AspNetUserTokens",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
UserId = table.Column<long>(type: "bigint", nullable: false),
|
||||||
|
LoginProvider = table.Column<string>(type: "text", nullable: false),
|
||||||
|
Name = table.Column<string>(type: "text", nullable: false),
|
||||||
|
Value = table.Column<string>(type: "text", nullable: true)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_AspNetUserTokens", x => new { x.UserId, x.LoginProvider, x.Name });
|
||||||
|
table.ForeignKey(
|
||||||
|
name: "FK_AspNetUserTokens_AspNetUsers_UserId",
|
||||||
|
column: x => x.UserId,
|
||||||
|
principalTable: "AspNetUsers",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
});
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_AspNetRoleClaims_RoleId",
|
||||||
|
table: "AspNetRoleClaims",
|
||||||
|
column: "RoleId");
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "RoleNameIndex",
|
||||||
|
table: "AspNetRoles",
|
||||||
|
column: "NormalizedName",
|
||||||
|
unique: true);
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_AspNetUserClaims_UserId",
|
||||||
|
table: "AspNetUserClaims",
|
||||||
|
column: "UserId");
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_AspNetUserLogins_UserId",
|
||||||
|
table: "AspNetUserLogins",
|
||||||
|
column: "UserId");
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_AspNetUserRoles_RoleId",
|
||||||
|
table: "AspNetUserRoles",
|
||||||
|
column: "RoleId");
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "EmailIndex",
|
||||||
|
table: "AspNetUsers",
|
||||||
|
column: "NormalizedEmail");
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_AspNetUsers_Phone",
|
||||||
|
table: "AspNetUsers",
|
||||||
|
column: "Phone",
|
||||||
|
unique: true);
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_AspNetUsers_TenantId",
|
||||||
|
table: "AspNetUsers",
|
||||||
|
column: "TenantId");
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "UserNameIndex",
|
||||||
|
table: "AspNetUsers",
|
||||||
|
column: "NormalizedUserName",
|
||||||
|
unique: true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Down(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "AspNetRoleClaims");
|
||||||
|
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "AspNetUserClaims");
|
||||||
|
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "AspNetUserLogins");
|
||||||
|
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "AspNetUserRoles");
|
||||||
|
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "AspNetUserTokens");
|
||||||
|
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "AspNetRoles");
|
||||||
|
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "AspNetUsers");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
309
Data/Migrations/ApplicationDbContextModelSnapshot.cs
Normal file
309
Data/Migrations/ApplicationDbContextModelSnapshot.cs
Normal file
@ -0,0 +1,309 @@
|
|||||||
|
// <auto-generated />
|
||||||
|
using System;
|
||||||
|
using Fengling.AuthService.Data;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||||
|
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||||
|
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||||
|
|
||||||
|
#nullable disable
|
||||||
|
|
||||||
|
namespace Fengling.AuthService.Data.Migrations
|
||||||
|
{
|
||||||
|
[DbContext(typeof(ApplicationDbContext))]
|
||||||
|
partial class ApplicationDbContextModelSnapshot : ModelSnapshot
|
||||||
|
{
|
||||||
|
protected override void BuildModel(ModelBuilder modelBuilder)
|
||||||
|
{
|
||||||
|
#pragma warning disable 612, 618
|
||||||
|
modelBuilder
|
||||||
|
.HasAnnotation("ProductVersion", "9.0.10")
|
||||||
|
.HasAnnotation("Relational:MaxIdentifierLength", 63);
|
||||||
|
|
||||||
|
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
|
||||||
|
|
||||||
|
modelBuilder.Entity("Fengling.AuthService.Models.ApplicationRole", b =>
|
||||||
|
{
|
||||||
|
b.Property<long>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("bigint");
|
||||||
|
|
||||||
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
|
||||||
|
|
||||||
|
b.Property<string>("ConcurrencyStamp")
|
||||||
|
.IsConcurrencyToken()
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.Property<DateTime>("CreatedTime")
|
||||||
|
.HasColumnType("timestamp with time zone");
|
||||||
|
|
||||||
|
b.Property<string>("Description")
|
||||||
|
.HasMaxLength(200)
|
||||||
|
.HasColumnType("character varying(200)");
|
||||||
|
|
||||||
|
b.Property<string>("Name")
|
||||||
|
.HasMaxLength(256)
|
||||||
|
.HasColumnType("character varying(256)");
|
||||||
|
|
||||||
|
b.Property<string>("NormalizedName")
|
||||||
|
.HasMaxLength(256)
|
||||||
|
.HasColumnType("character varying(256)");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("NormalizedName")
|
||||||
|
.IsUnique()
|
||||||
|
.HasDatabaseName("RoleNameIndex");
|
||||||
|
|
||||||
|
b.ToTable("AspNetRoles", (string)null);
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Fengling.AuthService.Models.ApplicationUser", b =>
|
||||||
|
{
|
||||||
|
b.Property<long>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("bigint");
|
||||||
|
|
||||||
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
|
||||||
|
|
||||||
|
b.Property<int>("AccessFailedCount")
|
||||||
|
.HasColumnType("integer");
|
||||||
|
|
||||||
|
b.Property<string>("ConcurrencyStamp")
|
||||||
|
.IsConcurrencyToken()
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.Property<DateTime>("CreatedTime")
|
||||||
|
.HasColumnType("timestamp with time zone");
|
||||||
|
|
||||||
|
b.Property<string>("Email")
|
||||||
|
.HasMaxLength(256)
|
||||||
|
.HasColumnType("character varying(256)");
|
||||||
|
|
||||||
|
b.Property<bool>("EmailConfirmed")
|
||||||
|
.HasColumnType("boolean");
|
||||||
|
|
||||||
|
b.Property<bool>("IsDeleted")
|
||||||
|
.HasColumnType("boolean");
|
||||||
|
|
||||||
|
b.Property<bool>("LockoutEnabled")
|
||||||
|
.HasColumnType("boolean");
|
||||||
|
|
||||||
|
b.Property<DateTimeOffset?>("LockoutEnd")
|
||||||
|
.HasColumnType("timestamp with time zone");
|
||||||
|
|
||||||
|
b.Property<string>("NormalizedEmail")
|
||||||
|
.HasMaxLength(256)
|
||||||
|
.HasColumnType("character varying(256)");
|
||||||
|
|
||||||
|
b.Property<string>("NormalizedUserName")
|
||||||
|
.HasMaxLength(256)
|
||||||
|
.HasColumnType("character varying(256)");
|
||||||
|
|
||||||
|
b.Property<string>("PasswordHash")
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.Property<string>("Phone")
|
||||||
|
.HasMaxLength(20)
|
||||||
|
.HasColumnType("character varying(20)");
|
||||||
|
|
||||||
|
b.Property<string>("PhoneNumber")
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.Property<bool>("PhoneNumberConfirmed")
|
||||||
|
.HasColumnType("boolean");
|
||||||
|
|
||||||
|
b.Property<string>("RealName")
|
||||||
|
.HasMaxLength(100)
|
||||||
|
.HasColumnType("character varying(100)");
|
||||||
|
|
||||||
|
b.Property<string>("SecurityStamp")
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.Property<long>("TenantId")
|
||||||
|
.HasColumnType("bigint");
|
||||||
|
|
||||||
|
b.Property<bool>("TwoFactorEnabled")
|
||||||
|
.HasColumnType("boolean");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("UpdatedTime")
|
||||||
|
.HasColumnType("timestamp with time zone");
|
||||||
|
|
||||||
|
b.Property<string>("UserName")
|
||||||
|
.HasMaxLength(256)
|
||||||
|
.HasColumnType("character varying(256)");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("NormalizedEmail")
|
||||||
|
.HasDatabaseName("EmailIndex");
|
||||||
|
|
||||||
|
b.HasIndex("NormalizedUserName")
|
||||||
|
.IsUnique()
|
||||||
|
.HasDatabaseName("UserNameIndex");
|
||||||
|
|
||||||
|
b.HasIndex("Phone")
|
||||||
|
.IsUnique();
|
||||||
|
|
||||||
|
b.HasIndex("TenantId");
|
||||||
|
|
||||||
|
b.ToTable("AspNetUsers", (string)null);
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<long>", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("integer");
|
||||||
|
|
||||||
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
|
b.Property<string>("ClaimType")
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.Property<string>("ClaimValue")
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.Property<long>("RoleId")
|
||||||
|
.HasColumnType("bigint");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("RoleId");
|
||||||
|
|
||||||
|
b.ToTable("AspNetRoleClaims", (string)null);
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<long>", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("integer");
|
||||||
|
|
||||||
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
|
b.Property<string>("ClaimType")
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.Property<string>("ClaimValue")
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.Property<long>("UserId")
|
||||||
|
.HasColumnType("bigint");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("UserId");
|
||||||
|
|
||||||
|
b.ToTable("AspNetUserClaims", (string)null);
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<long>", b =>
|
||||||
|
{
|
||||||
|
b.Property<string>("LoginProvider")
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.Property<string>("ProviderKey")
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.Property<string>("ProviderDisplayName")
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.Property<long>("UserId")
|
||||||
|
.HasColumnType("bigint");
|
||||||
|
|
||||||
|
b.HasKey("LoginProvider", "ProviderKey");
|
||||||
|
|
||||||
|
b.HasIndex("UserId");
|
||||||
|
|
||||||
|
b.ToTable("AspNetUserLogins", (string)null);
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<long>", b =>
|
||||||
|
{
|
||||||
|
b.Property<long>("UserId")
|
||||||
|
.HasColumnType("bigint");
|
||||||
|
|
||||||
|
b.Property<long>("RoleId")
|
||||||
|
.HasColumnType("bigint");
|
||||||
|
|
||||||
|
b.HasKey("UserId", "RoleId");
|
||||||
|
|
||||||
|
b.HasIndex("RoleId");
|
||||||
|
|
||||||
|
b.ToTable("AspNetUserRoles", (string)null);
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<long>", b =>
|
||||||
|
{
|
||||||
|
b.Property<long>("UserId")
|
||||||
|
.HasColumnType("bigint");
|
||||||
|
|
||||||
|
b.Property<string>("LoginProvider")
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.Property<string>("Name")
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.Property<string>("Value")
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.HasKey("UserId", "LoginProvider", "Name");
|
||||||
|
|
||||||
|
b.ToTable("AspNetUserTokens", (string)null);
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<long>", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Fengling.AuthService.Models.ApplicationRole", null)
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("RoleId")
|
||||||
|
.OnDelete(DeleteBehavior.Cascade)
|
||||||
|
.IsRequired();
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<long>", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Fengling.AuthService.Models.ApplicationUser", null)
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("UserId")
|
||||||
|
.OnDelete(DeleteBehavior.Cascade)
|
||||||
|
.IsRequired();
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<long>", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Fengling.AuthService.Models.ApplicationUser", null)
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("UserId")
|
||||||
|
.OnDelete(DeleteBehavior.Cascade)
|
||||||
|
.IsRequired();
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<long>", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Fengling.AuthService.Models.ApplicationRole", null)
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("RoleId")
|
||||||
|
.OnDelete(DeleteBehavior.Cascade)
|
||||||
|
.IsRequired();
|
||||||
|
|
||||||
|
b.HasOne("Fengling.AuthService.Models.ApplicationUser", null)
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("UserId")
|
||||||
|
.OnDelete(DeleteBehavior.Cascade)
|
||||||
|
.IsRequired();
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<long>", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Fengling.AuthService.Models.ApplicationUser", null)
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("UserId")
|
||||||
|
.OnDelete(DeleteBehavior.Cascade)
|
||||||
|
.IsRequired();
|
||||||
|
});
|
||||||
|
#pragma warning restore 612, 618
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -7,6 +7,10 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="9.0.1" />
|
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="9.0.1" />
|
||||||
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="9.0.3">
|
||||||
|
<PrivateAssets>all</PrivateAssets>
|
||||||
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||||
|
</PackageReference>
|
||||||
<PackageReference Include="OpenIddict.AspNetCore" Version="7.2.0" />
|
<PackageReference Include="OpenIddict.AspNetCore" Version="7.2.0" />
|
||||||
<PackageReference Include="OpenIddict.EntityFrameworkCore" Version="7.2.0" />
|
<PackageReference Include="OpenIddict.EntityFrameworkCore" Version="7.2.0" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="9.0.1" />
|
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="9.0.1" />
|
||||||
|
|||||||
9
Models/ApplicationRole.cs
Normal file
9
Models/ApplicationRole.cs
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
using Microsoft.AspNetCore.Identity;
|
||||||
|
|
||||||
|
namespace Fengling.AuthService.Models;
|
||||||
|
|
||||||
|
public class ApplicationRole : IdentityRole<long>
|
||||||
|
{
|
||||||
|
public string? Description { get; set; }
|
||||||
|
public DateTime CreatedTime { get; set; } = DateTime.UtcNow;
|
||||||
|
}
|
||||||
13
Models/ApplicationUser.cs
Normal file
13
Models/ApplicationUser.cs
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
using Microsoft.AspNetCore.Identity;
|
||||||
|
|
||||||
|
namespace Fengling.AuthService.Models;
|
||||||
|
|
||||||
|
public class ApplicationUser : IdentityUser<long>
|
||||||
|
{
|
||||||
|
public string? RealName { get; set; }
|
||||||
|
public string? Phone { get; set; }
|
||||||
|
public long TenantId { get; set; }
|
||||||
|
public DateTime CreatedTime { get; set; } = DateTime.UtcNow;
|
||||||
|
public DateTime? UpdatedTime { get; set; }
|
||||||
|
public bool IsDeleted { get; set; }
|
||||||
|
}
|
||||||
BIN
bin/Debug/net9.0/Fengling.AuthService
Executable file
BIN
bin/Debug/net9.0/Fengling.AuthService
Executable file
Binary file not shown.
2202
bin/Debug/net9.0/Fengling.AuthService.deps.json
Normal file
2202
bin/Debug/net9.0/Fengling.AuthService.deps.json
Normal file
File diff suppressed because it is too large
Load Diff
BIN
bin/Debug/net9.0/Fengling.AuthService.dll
Normal file
BIN
bin/Debug/net9.0/Fengling.AuthService.dll
Normal file
Binary file not shown.
BIN
bin/Debug/net9.0/Fengling.AuthService.pdb
Normal file
BIN
bin/Debug/net9.0/Fengling.AuthService.pdb
Normal file
Binary file not shown.
20
bin/Debug/net9.0/Fengling.AuthService.runtimeconfig.json
Normal file
20
bin/Debug/net9.0/Fengling.AuthService.runtimeconfig.json
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"runtimeOptions": {
|
||||||
|
"tfm": "net9.0",
|
||||||
|
"frameworks": [
|
||||||
|
{
|
||||||
|
"name": "Microsoft.NETCore.App",
|
||||||
|
"version": "9.0.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Microsoft.AspNetCore.App",
|
||||||
|
"version": "9.0.0"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"configProperties": {
|
||||||
|
"System.GC.Server": true,
|
||||||
|
"System.Reflection.NullabilityInfoContext.IsSupported": true,
|
||||||
|
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1 @@
|
|||||||
|
{"Version":1,"ManifestType":"Build","Endpoints":[]}
|
||||||
BIN
bin/Debug/net9.0/Humanizer.dll
Executable file
BIN
bin/Debug/net9.0/Humanizer.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.AspNetCore.Cryptography.Internal.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.AspNetCore.Cryptography.Internal.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.AspNetCore.Cryptography.KeyDerivation.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.AspNetCore.Cryptography.KeyDerivation.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.AspNetCore.Identity.EntityFrameworkCore.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.AspNetCore.Identity.EntityFrameworkCore.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.AspNetCore.OpenApi.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.AspNetCore.OpenApi.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.Bcl.AsyncInterfaces.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.Bcl.AsyncInterfaces.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.Build.Locator.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.Build.Locator.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.CodeAnalysis.CSharp.Workspaces.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.CodeAnalysis.CSharp.Workspaces.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.CodeAnalysis.CSharp.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.CodeAnalysis.CSharp.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.CodeAnalysis.Workspaces.MSBuild.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.CodeAnalysis.Workspaces.MSBuild.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.CodeAnalysis.Workspaces.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.CodeAnalysis.Workspaces.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.CodeAnalysis.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.CodeAnalysis.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.EntityFrameworkCore.Abstractions.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.EntityFrameworkCore.Abstractions.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.EntityFrameworkCore.Design.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.EntityFrameworkCore.Design.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.EntityFrameworkCore.Relational.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.EntityFrameworkCore.Relational.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.EntityFrameworkCore.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.EntityFrameworkCore.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.Extensions.AmbientMetadata.Application.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.Extensions.AmbientMetadata.Application.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.Extensions.Caching.Abstractions.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.Extensions.Caching.Abstractions.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.Extensions.Caching.Memory.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.Extensions.Caching.Memory.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.Extensions.Compliance.Abstractions.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.Extensions.Compliance.Abstractions.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.Extensions.Configuration.Abstractions.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.Extensions.Configuration.Abstractions.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.Extensions.Configuration.Binder.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.Extensions.Configuration.Binder.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.Extensions.Configuration.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.Extensions.Configuration.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.Extensions.DependencyInjection.AutoActivation.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.Extensions.DependencyInjection.AutoActivation.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.Extensions.DependencyInjection.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.Extensions.DependencyInjection.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.Extensions.DependencyModel.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.Extensions.DependencyModel.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.Extensions.Diagnostics.Abstractions.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.Extensions.Diagnostics.Abstractions.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.Extensions.Diagnostics.ExceptionSummarization.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.Extensions.Diagnostics.ExceptionSummarization.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.Extensions.Diagnostics.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.Extensions.Diagnostics.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.Extensions.FileProviders.Abstractions.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.Extensions.FileProviders.Abstractions.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.Extensions.Hosting.Abstractions.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.Extensions.Hosting.Abstractions.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.Extensions.Http.Diagnostics.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.Extensions.Http.Diagnostics.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.Extensions.Http.Polly.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.Extensions.Http.Polly.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.Extensions.Http.Resilience.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.Extensions.Http.Resilience.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.Extensions.Http.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.Extensions.Http.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.Extensions.Identity.Core.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.Extensions.Identity.Core.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.Extensions.Identity.Stores.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.Extensions.Identity.Stores.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.Extensions.Logging.Abstractions.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.Extensions.Logging.Abstractions.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.Extensions.Logging.Configuration.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.Extensions.Logging.Configuration.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.Extensions.Logging.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.Extensions.Logging.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.Extensions.ObjectPool.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.Extensions.ObjectPool.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.Extensions.Options.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.Extensions.Options.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.Extensions.Primitives.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.Extensions.Primitives.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.Extensions.Resilience.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.Extensions.Resilience.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.Extensions.Telemetry.Abstractions.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.Extensions.Telemetry.Abstractions.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.Extensions.Telemetry.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.Extensions.Telemetry.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.IdentityModel.Abstractions.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.IdentityModel.Abstractions.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.IdentityModel.JsonWebTokens.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.IdentityModel.JsonWebTokens.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.IdentityModel.Logging.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.IdentityModel.Logging.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.IdentityModel.Protocols.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.IdentityModel.Protocols.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.IdentityModel.Tokens.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.IdentityModel.Tokens.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.Net.Http.Headers.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.Net.Http.Headers.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Microsoft.OpenApi.dll
Executable file
BIN
bin/Debug/net9.0/Microsoft.OpenApi.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Mono.TextTemplating.dll
Executable file
BIN
bin/Debug/net9.0/Mono.TextTemplating.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Npgsql.EntityFrameworkCore.PostgreSQL.dll
Executable file
BIN
bin/Debug/net9.0/Npgsql.EntityFrameworkCore.PostgreSQL.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Npgsql.dll
Executable file
BIN
bin/Debug/net9.0/Npgsql.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/OpenIddict.Abstractions.dll
Executable file
BIN
bin/Debug/net9.0/OpenIddict.Abstractions.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/OpenIddict.Client.AspNetCore.dll
Executable file
BIN
bin/Debug/net9.0/OpenIddict.Client.AspNetCore.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/OpenIddict.Client.DataProtection.dll
Executable file
BIN
bin/Debug/net9.0/OpenIddict.Client.DataProtection.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/OpenIddict.Client.SystemIntegration.dll
Executable file
BIN
bin/Debug/net9.0/OpenIddict.Client.SystemIntegration.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/OpenIddict.Client.SystemNetHttp.dll
Executable file
BIN
bin/Debug/net9.0/OpenIddict.Client.SystemNetHttp.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/OpenIddict.Client.WebIntegration.dll
Executable file
BIN
bin/Debug/net9.0/OpenIddict.Client.WebIntegration.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/OpenIddict.Client.dll
Executable file
BIN
bin/Debug/net9.0/OpenIddict.Client.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/OpenIddict.Core.dll
Executable file
BIN
bin/Debug/net9.0/OpenIddict.Core.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/OpenIddict.EntityFrameworkCore.Models.dll
Executable file
BIN
bin/Debug/net9.0/OpenIddict.EntityFrameworkCore.Models.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/OpenIddict.EntityFrameworkCore.dll
Executable file
BIN
bin/Debug/net9.0/OpenIddict.EntityFrameworkCore.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/OpenIddict.Server.AspNetCore.dll
Executable file
BIN
bin/Debug/net9.0/OpenIddict.Server.AspNetCore.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/OpenIddict.Server.DataProtection.dll
Executable file
BIN
bin/Debug/net9.0/OpenIddict.Server.DataProtection.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/OpenIddict.Server.dll
Executable file
BIN
bin/Debug/net9.0/OpenIddict.Server.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/OpenIddict.Validation.AspNetCore.dll
Executable file
BIN
bin/Debug/net9.0/OpenIddict.Validation.AspNetCore.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/OpenIddict.Validation.DataProtection.dll
Executable file
BIN
bin/Debug/net9.0/OpenIddict.Validation.DataProtection.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/OpenIddict.Validation.ServerIntegration.dll
Executable file
BIN
bin/Debug/net9.0/OpenIddict.Validation.ServerIntegration.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/OpenIddict.Validation.SystemNetHttp.dll
Executable file
BIN
bin/Debug/net9.0/OpenIddict.Validation.SystemNetHttp.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/OpenIddict.Validation.dll
Executable file
BIN
bin/Debug/net9.0/OpenIddict.Validation.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/OpenTelemetry.Api.ProviderBuilderExtensions.dll
Executable file
BIN
bin/Debug/net9.0/OpenTelemetry.Api.ProviderBuilderExtensions.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/OpenTelemetry.Api.dll
Executable file
BIN
bin/Debug/net9.0/OpenTelemetry.Api.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/OpenTelemetry.Exporter.OpenTelemetryProtocol.dll
Executable file
BIN
bin/Debug/net9.0/OpenTelemetry.Exporter.OpenTelemetryProtocol.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/OpenTelemetry.Extensions.Hosting.dll
Executable file
BIN
bin/Debug/net9.0/OpenTelemetry.Extensions.Hosting.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/OpenTelemetry.Instrumentation.AspNetCore.dll
Executable file
BIN
bin/Debug/net9.0/OpenTelemetry.Instrumentation.AspNetCore.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/OpenTelemetry.dll
Executable file
BIN
bin/Debug/net9.0/OpenTelemetry.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Polly.Core.dll
Executable file
BIN
bin/Debug/net9.0/Polly.Core.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Polly.Extensions.Http.dll
Executable file
BIN
bin/Debug/net9.0/Polly.Extensions.Http.dll
Executable file
Binary file not shown.
BIN
bin/Debug/net9.0/Polly.Extensions.dll
Executable file
BIN
bin/Debug/net9.0/Polly.Extensions.dll
Executable file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user