94 changed files with 2550 additions and 522 deletions
File diff suppressed because it is too large
@ -0,0 +1,62 @@ |
|||||
|
using Microsoft.EntityFrameworkCore.Migrations; |
||||
|
|
||||
|
#nullable disable |
||||
|
|
||||
|
namespace LY.MicroService.AuthServer.EntityFrameworkCore.Migrations |
||||
|
{ |
||||
|
/// <inheritdoc />
|
||||
|
public partial class UpgradeAbpFrameworkTo810 : Migration |
||||
|
{ |
||||
|
/// <inheritdoc />
|
||||
|
protected override void Up(MigrationBuilder migrationBuilder) |
||||
|
{ |
||||
|
migrationBuilder.RenameColumn( |
||||
|
name: "Type", |
||||
|
table: "OpenIddictApplications", |
||||
|
newName: "ClientType"); |
||||
|
|
||||
|
migrationBuilder.AddColumn<string>( |
||||
|
name: "ApplicationType", |
||||
|
table: "OpenIddictApplications", |
||||
|
type: "varchar(50)", |
||||
|
maxLength: 50, |
||||
|
nullable: true) |
||||
|
.Annotation("MySql:CharSet", "utf8mb4"); |
||||
|
|
||||
|
migrationBuilder.AddColumn<string>( |
||||
|
name: "JsonWebKeySet", |
||||
|
table: "OpenIddictApplications", |
||||
|
type: "longtext", |
||||
|
nullable: true) |
||||
|
.Annotation("MySql:CharSet", "utf8mb4"); |
||||
|
|
||||
|
migrationBuilder.AddColumn<string>( |
||||
|
name: "Settings", |
||||
|
table: "OpenIddictApplications", |
||||
|
type: "longtext", |
||||
|
nullable: true) |
||||
|
.Annotation("MySql:CharSet", "utf8mb4"); |
||||
|
} |
||||
|
|
||||
|
/// <inheritdoc />
|
||||
|
protected override void Down(MigrationBuilder migrationBuilder) |
||||
|
{ |
||||
|
migrationBuilder.DropColumn( |
||||
|
name: "ApplicationType", |
||||
|
table: "OpenIddictApplications"); |
||||
|
|
||||
|
migrationBuilder.DropColumn( |
||||
|
name: "JsonWebKeySet", |
||||
|
table: "OpenIddictApplications"); |
||||
|
|
||||
|
migrationBuilder.DropColumn( |
||||
|
name: "Settings", |
||||
|
table: "OpenIddictApplications"); |
||||
|
|
||||
|
migrationBuilder.RenameColumn( |
||||
|
name: "ClientType", |
||||
|
table: "OpenIddictApplications", |
||||
|
newName: "Type"); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,653 @@ |
|||||
|
// <auto-generated />
|
||||
|
using System; |
||||
|
using LY.MicroService.BackendAdmin.EntityFrameworkCore; |
||||
|
using Microsoft.EntityFrameworkCore; |
||||
|
using Microsoft.EntityFrameworkCore.Infrastructure; |
||||
|
using Microsoft.EntityFrameworkCore.Migrations; |
||||
|
using Microsoft.EntityFrameworkCore.Storage.ValueConversion; |
||||
|
using Volo.Abp.EntityFrameworkCore; |
||||
|
|
||||
|
#nullable disable |
||||
|
|
||||
|
namespace LY.MicroService.BackendAdmin.EntityFrameworkCore.Migrations |
||||
|
{ |
||||
|
[DbContext(typeof(BackendAdminMigrationsDbContext))] |
||||
|
[Migration("20240413021854_Upgrade-Abp-Framework-To-8-1-0")] |
||||
|
partial class UpgradeAbpFrameworkTo810 |
||||
|
{ |
||||
|
/// <inheritdoc />
|
||||
|
protected override void BuildTargetModel(ModelBuilder modelBuilder) |
||||
|
{ |
||||
|
#pragma warning disable 612, 618
|
||||
|
modelBuilder |
||||
|
.HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.MySql) |
||||
|
.HasAnnotation("ProductVersion", "8.0.0") |
||||
|
.HasAnnotation("Relational:MaxIdentifierLength", 64); |
||||
|
|
||||
|
modelBuilder.Entity("LINGYUN.Abp.Saas.Editions.Edition", b => |
||||
|
{ |
||||
|
b.Property<Guid>("Id") |
||||
|
.ValueGeneratedOnAdd() |
||||
|
.HasColumnType("char(36)"); |
||||
|
|
||||
|
b.Property<string>("ConcurrencyStamp") |
||||
|
.IsConcurrencyToken() |
||||
|
.IsRequired() |
||||
|
.HasMaxLength(40) |
||||
|
.HasColumnType("varchar(40)") |
||||
|
.HasColumnName("ConcurrencyStamp"); |
||||
|
|
||||
|
b.Property<DateTime>("CreationTime") |
||||
|
.HasColumnType("datetime(6)") |
||||
|
.HasColumnName("CreationTime"); |
||||
|
|
||||
|
b.Property<Guid?>("CreatorId") |
||||
|
.HasColumnType("char(36)") |
||||
|
.HasColumnName("CreatorId"); |
||||
|
|
||||
|
b.Property<Guid?>("DeleterId") |
||||
|
.HasColumnType("char(36)") |
||||
|
.HasColumnName("DeleterId"); |
||||
|
|
||||
|
b.Property<DateTime?>("DeletionTime") |
||||
|
.HasColumnType("datetime(6)") |
||||
|
.HasColumnName("DeletionTime"); |
||||
|
|
||||
|
b.Property<string>("DisplayName") |
||||
|
.IsRequired() |
||||
|
.HasMaxLength(64) |
||||
|
.HasColumnType("varchar(64)"); |
||||
|
|
||||
|
b.Property<int>("EntityVersion") |
||||
|
.HasColumnType("int"); |
||||
|
|
||||
|
b.Property<string>("ExtraProperties") |
||||
|
.IsRequired() |
||||
|
.HasColumnType("longtext") |
||||
|
.HasColumnName("ExtraProperties"); |
||||
|
|
||||
|
b.Property<bool>("IsDeleted") |
||||
|
.ValueGeneratedOnAdd() |
||||
|
.HasColumnType("tinyint(1)") |
||||
|
.HasDefaultValue(false) |
||||
|
.HasColumnName("IsDeleted"); |
||||
|
|
||||
|
b.Property<DateTime?>("LastModificationTime") |
||||
|
.HasColumnType("datetime(6)") |
||||
|
.HasColumnName("LastModificationTime"); |
||||
|
|
||||
|
b.Property<Guid?>("LastModifierId") |
||||
|
.HasColumnType("char(36)") |
||||
|
.HasColumnName("LastModifierId"); |
||||
|
|
||||
|
b.HasKey("Id"); |
||||
|
|
||||
|
b.HasIndex("DisplayName"); |
||||
|
|
||||
|
b.ToTable("AbpEditions", (string)null); |
||||
|
}); |
||||
|
|
||||
|
modelBuilder.Entity("LINGYUN.Abp.Saas.Tenants.Tenant", b => |
||||
|
{ |
||||
|
b.Property<Guid>("Id") |
||||
|
.ValueGeneratedOnAdd() |
||||
|
.HasColumnType("char(36)"); |
||||
|
|
||||
|
b.Property<string>("ConcurrencyStamp") |
||||
|
.IsConcurrencyToken() |
||||
|
.IsRequired() |
||||
|
.HasMaxLength(40) |
||||
|
.HasColumnType("varchar(40)") |
||||
|
.HasColumnName("ConcurrencyStamp"); |
||||
|
|
||||
|
b.Property<DateTime>("CreationTime") |
||||
|
.HasColumnType("datetime(6)") |
||||
|
.HasColumnName("CreationTime"); |
||||
|
|
||||
|
b.Property<Guid?>("CreatorId") |
||||
|
.HasColumnType("char(36)") |
||||
|
.HasColumnName("CreatorId"); |
||||
|
|
||||
|
b.Property<Guid?>("DeleterId") |
||||
|
.HasColumnType("char(36)") |
||||
|
.HasColumnName("DeleterId"); |
||||
|
|
||||
|
b.Property<DateTime?>("DeletionTime") |
||||
|
.HasColumnType("datetime(6)") |
||||
|
.HasColumnName("DeletionTime"); |
||||
|
|
||||
|
b.Property<DateTime?>("DisableTime") |
||||
|
.HasColumnType("datetime(6)"); |
||||
|
|
||||
|
b.Property<Guid?>("EditionId") |
||||
|
.HasColumnType("char(36)"); |
||||
|
|
||||
|
b.Property<DateTime?>("EnableTime") |
||||
|
.HasColumnType("datetime(6)"); |
||||
|
|
||||
|
b.Property<int>("EntityVersion") |
||||
|
.HasColumnType("int"); |
||||
|
|
||||
|
b.Property<string>("ExtraProperties") |
||||
|
.IsRequired() |
||||
|
.HasColumnType("longtext") |
||||
|
.HasColumnName("ExtraProperties"); |
||||
|
|
||||
|
b.Property<bool>("IsActive") |
||||
|
.HasColumnType("tinyint(1)"); |
||||
|
|
||||
|
b.Property<bool>("IsDeleted") |
||||
|
.ValueGeneratedOnAdd() |
||||
|
.HasColumnType("tinyint(1)") |
||||
|
.HasDefaultValue(false) |
||||
|
.HasColumnName("IsDeleted"); |
||||
|
|
||||
|
b.Property<DateTime?>("LastModificationTime") |
||||
|
.HasColumnType("datetime(6)") |
||||
|
.HasColumnName("LastModificationTime"); |
||||
|
|
||||
|
b.Property<Guid?>("LastModifierId") |
||||
|
.HasColumnType("char(36)") |
||||
|
.HasColumnName("LastModifierId"); |
||||
|
|
||||
|
b.Property<string>("Name") |
||||
|
.IsRequired() |
||||
|
.HasMaxLength(64) |
||||
|
.HasColumnType("varchar(64)"); |
||||
|
|
||||
|
b.Property<string>("NormalizedName") |
||||
|
.HasMaxLength(64) |
||||
|
.HasColumnType("varchar(64)"); |
||||
|
|
||||
|
b.HasKey("Id"); |
||||
|
|
||||
|
b.HasIndex("EditionId"); |
||||
|
|
||||
|
b.HasIndex("Name"); |
||||
|
|
||||
|
b.HasIndex("NormalizedName"); |
||||
|
|
||||
|
b.ToTable("AbpTenants", (string)null); |
||||
|
}); |
||||
|
|
||||
|
modelBuilder.Entity("LINGYUN.Abp.Saas.Tenants.TenantConnectionString", b => |
||||
|
{ |
||||
|
b.Property<Guid>("TenantId") |
||||
|
.HasColumnType("char(36)"); |
||||
|
|
||||
|
b.Property<string>("Name") |
||||
|
.HasMaxLength(64) |
||||
|
.HasColumnType("varchar(64)"); |
||||
|
|
||||
|
b.Property<string>("Value") |
||||
|
.IsRequired() |
||||
|
.HasMaxLength(1024) |
||||
|
.HasColumnType("varchar(1024)"); |
||||
|
|
||||
|
b.HasKey("TenantId", "Name"); |
||||
|
|
||||
|
b.ToTable("AbpTenantConnectionStrings", (string)null); |
||||
|
}); |
||||
|
|
||||
|
modelBuilder.Entity("LINGYUN.Abp.TextTemplating.TextTemplate", b => |
||||
|
{ |
||||
|
b.Property<Guid>("Id") |
||||
|
.ValueGeneratedOnAdd() |
||||
|
.HasColumnType("char(36)"); |
||||
|
|
||||
|
b.Property<string>("Content") |
||||
|
.HasMaxLength(1048576) |
||||
|
.HasColumnType("longtext") |
||||
|
.HasColumnName("Content"); |
||||
|
|
||||
|
b.Property<DateTime>("CreationTime") |
||||
|
.HasColumnType("datetime(6)") |
||||
|
.HasColumnName("CreationTime"); |
||||
|
|
||||
|
b.Property<Guid?>("CreatorId") |
||||
|
.HasColumnType("char(36)") |
||||
|
.HasColumnName("CreatorId"); |
||||
|
|
||||
|
b.Property<string>("Culture") |
||||
|
.HasMaxLength(30) |
||||
|
.HasColumnType("varchar(30)") |
||||
|
.HasColumnName("Culture"); |
||||
|
|
||||
|
b.Property<string>("DisplayName") |
||||
|
.IsRequired() |
||||
|
.HasMaxLength(100) |
||||
|
.HasColumnType("varchar(100)") |
||||
|
.HasColumnName("DisplayName"); |
||||
|
|
||||
|
b.Property<DateTime?>("LastModificationTime") |
||||
|
.HasColumnType("datetime(6)") |
||||
|
.HasColumnName("LastModificationTime"); |
||||
|
|
||||
|
b.Property<Guid?>("LastModifierId") |
||||
|
.HasColumnType("char(36)") |
||||
|
.HasColumnName("LastModifierId"); |
||||
|
|
||||
|
b.Property<string>("Name") |
||||
|
.IsRequired() |
||||
|
.HasMaxLength(100) |
||||
|
.HasColumnType("varchar(100)") |
||||
|
.HasColumnName("Name"); |
||||
|
|
||||
|
b.Property<Guid?>("TenantId") |
||||
|
.HasColumnType("char(36)") |
||||
|
.HasColumnName("TenantId"); |
||||
|
|
||||
|
b.HasKey("Id"); |
||||
|
|
||||
|
b.HasIndex("TenantId", "Name") |
||||
|
.HasDatabaseName("IX_Tenant_Text_Template_Name"); |
||||
|
|
||||
|
b.ToTable("AbpTextTemplates", (string)null); |
||||
|
}); |
||||
|
|
||||
|
modelBuilder.Entity("LINGYUN.Abp.TextTemplating.TextTemplateDefinition", b => |
||||
|
{ |
||||
|
b.Property<Guid>("Id") |
||||
|
.ValueGeneratedOnAdd() |
||||
|
.HasColumnType("char(36)"); |
||||
|
|
||||
|
b.Property<string>("ConcurrencyStamp") |
||||
|
.IsConcurrencyToken() |
||||
|
.IsRequired() |
||||
|
.HasMaxLength(40) |
||||
|
.HasColumnType("varchar(40)") |
||||
|
.HasColumnName("ConcurrencyStamp"); |
||||
|
|
||||
|
b.Property<string>("DefaultCultureName") |
||||
|
.HasMaxLength(30) |
||||
|
.HasColumnType("varchar(30)") |
||||
|
.HasColumnName("DefaultCultureName"); |
||||
|
|
||||
|
b.Property<string>("DisplayName") |
||||
|
.IsRequired() |
||||
|
.HasMaxLength(512) |
||||
|
.HasColumnType("varchar(512)") |
||||
|
.HasColumnName("DisplayName"); |
||||
|
|
||||
|
b.Property<string>("ExtraProperties") |
||||
|
.IsRequired() |
||||
|
.HasColumnType("longtext") |
||||
|
.HasColumnName("ExtraProperties"); |
||||
|
|
||||
|
b.Property<bool>("IsInlineLocalized") |
||||
|
.HasColumnType("tinyint(1)"); |
||||
|
|
||||
|
b.Property<bool>("IsLayout") |
||||
|
.HasColumnType("tinyint(1)"); |
||||
|
|
||||
|
b.Property<bool>("IsStatic") |
||||
|
.HasColumnType("tinyint(1)"); |
||||
|
|
||||
|
b.Property<string>("Layout") |
||||
|
.HasMaxLength(60) |
||||
|
.HasColumnType("varchar(60)") |
||||
|
.HasColumnName("Layout"); |
||||
|
|
||||
|
b.Property<string>("LocalizationResourceName") |
||||
|
.HasMaxLength(64) |
||||
|
.HasColumnType("varchar(64)") |
||||
|
.HasColumnName("LocalizationResourceName"); |
||||
|
|
||||
|
b.Property<string>("Name") |
||||
|
.IsRequired() |
||||
|
.HasMaxLength(128) |
||||
|
.HasColumnType("varchar(128)") |
||||
|
.HasColumnName("Name"); |
||||
|
|
||||
|
b.Property<string>("RenderEngine") |
||||
|
.HasMaxLength(30) |
||||
|
.HasColumnType("varchar(30)") |
||||
|
.HasColumnName("RenderEngine"); |
||||
|
|
||||
|
b.HasKey("Id"); |
||||
|
|
||||
|
b.ToTable("AbpTextTemplateDefinitions", (string)null); |
||||
|
}); |
||||
|
|
||||
|
modelBuilder.Entity("Volo.Abp.FeatureManagement.FeatureDefinitionRecord", b => |
||||
|
{ |
||||
|
b.Property<Guid>("Id") |
||||
|
.ValueGeneratedOnAdd() |
||||
|
.HasColumnType("char(36)"); |
||||
|
|
||||
|
b.Property<string>("AllowedProviders") |
||||
|
.HasMaxLength(256) |
||||
|
.HasColumnType("varchar(256)"); |
||||
|
|
||||
|
b.Property<string>("DefaultValue") |
||||
|
.HasMaxLength(256) |
||||
|
.HasColumnType("varchar(256)"); |
||||
|
|
||||
|
b.Property<string>("Description") |
||||
|
.HasMaxLength(256) |
||||
|
.HasColumnType("varchar(256)"); |
||||
|
|
||||
|
b.Property<string>("DisplayName") |
||||
|
.IsRequired() |
||||
|
.HasMaxLength(256) |
||||
|
.HasColumnType("varchar(256)"); |
||||
|
|
||||
|
b.Property<string>("ExtraProperties") |
||||
|
.HasColumnType("longtext") |
||||
|
.HasColumnName("ExtraProperties"); |
||||
|
|
||||
|
b.Property<string>("GroupName") |
||||
|
.IsRequired() |
||||
|
.HasMaxLength(128) |
||||
|
.HasColumnType("varchar(128)"); |
||||
|
|
||||
|
b.Property<bool>("IsAvailableToHost") |
||||
|
.HasColumnType("tinyint(1)"); |
||||
|
|
||||
|
b.Property<bool>("IsVisibleToClients") |
||||
|
.HasColumnType("tinyint(1)"); |
||||
|
|
||||
|
b.Property<string>("Name") |
||||
|
.IsRequired() |
||||
|
.HasMaxLength(128) |
||||
|
.HasColumnType("varchar(128)"); |
||||
|
|
||||
|
b.Property<string>("ParentName") |
||||
|
.HasMaxLength(128) |
||||
|
.HasColumnType("varchar(128)"); |
||||
|
|
||||
|
b.Property<string>("ValueType") |
||||
|
.HasMaxLength(2048) |
||||
|
.HasColumnType("varchar(2048)"); |
||||
|
|
||||
|
b.HasKey("Id"); |
||||
|
|
||||
|
b.HasIndex("GroupName"); |
||||
|
|
||||
|
b.HasIndex("Name") |
||||
|
.IsUnique(); |
||||
|
|
||||
|
b.ToTable("AbpFeatures", (string)null); |
||||
|
}); |
||||
|
|
||||
|
modelBuilder.Entity("Volo.Abp.FeatureManagement.FeatureGroupDefinitionRecord", b => |
||||
|
{ |
||||
|
b.Property<Guid>("Id") |
||||
|
.ValueGeneratedOnAdd() |
||||
|
.HasColumnType("char(36)"); |
||||
|
|
||||
|
b.Property<string>("DisplayName") |
||||
|
.IsRequired() |
||||
|
.HasMaxLength(256) |
||||
|
.HasColumnType("varchar(256)"); |
||||
|
|
||||
|
b.Property<string>("ExtraProperties") |
||||
|
.HasColumnType("longtext") |
||||
|
.HasColumnName("ExtraProperties"); |
||||
|
|
||||
|
b.Property<string>("Name") |
||||
|
.IsRequired() |
||||
|
.HasMaxLength(128) |
||||
|
.HasColumnType("varchar(128)"); |
||||
|
|
||||
|
b.HasKey("Id"); |
||||
|
|
||||
|
b.HasIndex("Name") |
||||
|
.IsUnique(); |
||||
|
|
||||
|
b.ToTable("AbpFeatureGroups", (string)null); |
||||
|
}); |
||||
|
|
||||
|
modelBuilder.Entity("Volo.Abp.FeatureManagement.FeatureValue", b => |
||||
|
{ |
||||
|
b.Property<Guid>("Id") |
||||
|
.ValueGeneratedOnAdd() |
||||
|
.HasColumnType("char(36)"); |
||||
|
|
||||
|
b.Property<string>("Name") |
||||
|
.IsRequired() |
||||
|
.HasMaxLength(128) |
||||
|
.HasColumnType("varchar(128)"); |
||||
|
|
||||
|
b.Property<string>("ProviderKey") |
||||
|
.HasMaxLength(64) |
||||
|
.HasColumnType("varchar(64)"); |
||||
|
|
||||
|
b.Property<string>("ProviderName") |
||||
|
.HasMaxLength(64) |
||||
|
.HasColumnType("varchar(64)"); |
||||
|
|
||||
|
b.Property<string>("Value") |
||||
|
.IsRequired() |
||||
|
.HasMaxLength(128) |
||||
|
.HasColumnType("varchar(128)"); |
||||
|
|
||||
|
b.HasKey("Id"); |
||||
|
|
||||
|
b.HasIndex("Name", "ProviderName", "ProviderKey") |
||||
|
.IsUnique(); |
||||
|
|
||||
|
b.ToTable("AbpFeatureValues", (string)null); |
||||
|
}); |
||||
|
|
||||
|
modelBuilder.Entity("Volo.Abp.PermissionManagement.PermissionDefinitionRecord", b => |
||||
|
{ |
||||
|
b.Property<Guid>("Id") |
||||
|
.ValueGeneratedOnAdd() |
||||
|
.HasColumnType("char(36)"); |
||||
|
|
||||
|
b.Property<string>("DisplayName") |
||||
|
.IsRequired() |
||||
|
.HasMaxLength(256) |
||||
|
.HasColumnType("varchar(256)"); |
||||
|
|
||||
|
b.Property<string>("ExtraProperties") |
||||
|
.HasColumnType("longtext") |
||||
|
.HasColumnName("ExtraProperties"); |
||||
|
|
||||
|
b.Property<string>("GroupName") |
||||
|
.IsRequired() |
||||
|
.HasMaxLength(128) |
||||
|
.HasColumnType("varchar(128)"); |
||||
|
|
||||
|
b.Property<bool>("IsEnabled") |
||||
|
.HasColumnType("tinyint(1)"); |
||||
|
|
||||
|
b.Property<byte>("MultiTenancySide") |
||||
|
.HasColumnType("tinyint unsigned"); |
||||
|
|
||||
|
b.Property<string>("Name") |
||||
|
.IsRequired() |
||||
|
.HasMaxLength(128) |
||||
|
.HasColumnType("varchar(128)"); |
||||
|
|
||||
|
b.Property<string>("ParentName") |
||||
|
.HasMaxLength(128) |
||||
|
.HasColumnType("varchar(128)"); |
||||
|
|
||||
|
b.Property<string>("Providers") |
||||
|
.HasMaxLength(128) |
||||
|
.HasColumnType("varchar(128)"); |
||||
|
|
||||
|
b.Property<string>("StateCheckers") |
||||
|
.HasMaxLength(256) |
||||
|
.HasColumnType("varchar(256)"); |
||||
|
|
||||
|
b.HasKey("Id"); |
||||
|
|
||||
|
b.HasIndex("GroupName"); |
||||
|
|
||||
|
b.HasIndex("Name") |
||||
|
.IsUnique(); |
||||
|
|
||||
|
b.ToTable("AbpPermissions", (string)null); |
||||
|
}); |
||||
|
|
||||
|
modelBuilder.Entity("Volo.Abp.PermissionManagement.PermissionGrant", b => |
||||
|
{ |
||||
|
b.Property<Guid>("Id") |
||||
|
.ValueGeneratedOnAdd() |
||||
|
.HasColumnType("char(36)"); |
||||
|
|
||||
|
b.Property<string>("Name") |
||||
|
.IsRequired() |
||||
|
.HasMaxLength(128) |
||||
|
.HasColumnType("varchar(128)"); |
||||
|
|
||||
|
b.Property<string>("ProviderKey") |
||||
|
.IsRequired() |
||||
|
.HasMaxLength(64) |
||||
|
.HasColumnType("varchar(64)"); |
||||
|
|
||||
|
b.Property<string>("ProviderName") |
||||
|
.IsRequired() |
||||
|
.HasMaxLength(64) |
||||
|
.HasColumnType("varchar(64)"); |
||||
|
|
||||
|
b.Property<Guid?>("TenantId") |
||||
|
.HasColumnType("char(36)") |
||||
|
.HasColumnName("TenantId"); |
||||
|
|
||||
|
b.HasKey("Id"); |
||||
|
|
||||
|
b.HasIndex("TenantId", "Name", "ProviderName", "ProviderKey") |
||||
|
.IsUnique(); |
||||
|
|
||||
|
b.ToTable("AbpPermissionGrants", (string)null); |
||||
|
}); |
||||
|
|
||||
|
modelBuilder.Entity("Volo.Abp.PermissionManagement.PermissionGroupDefinitionRecord", b => |
||||
|
{ |
||||
|
b.Property<Guid>("Id") |
||||
|
.ValueGeneratedOnAdd() |
||||
|
.HasColumnType("char(36)"); |
||||
|
|
||||
|
b.Property<string>("DisplayName") |
||||
|
.IsRequired() |
||||
|
.HasMaxLength(256) |
||||
|
.HasColumnType("varchar(256)"); |
||||
|
|
||||
|
b.Property<string>("ExtraProperties") |
||||
|
.HasColumnType("longtext") |
||||
|
.HasColumnName("ExtraProperties"); |
||||
|
|
||||
|
b.Property<string>("Name") |
||||
|
.IsRequired() |
||||
|
.HasMaxLength(128) |
||||
|
.HasColumnType("varchar(128)"); |
||||
|
|
||||
|
b.HasKey("Id"); |
||||
|
|
||||
|
b.HasIndex("Name") |
||||
|
.IsUnique(); |
||||
|
|
||||
|
b.ToTable("AbpPermissionGroups", (string)null); |
||||
|
}); |
||||
|
|
||||
|
modelBuilder.Entity("Volo.Abp.SettingManagement.Setting", b => |
||||
|
{ |
||||
|
b.Property<Guid>("Id") |
||||
|
.ValueGeneratedOnAdd() |
||||
|
.HasColumnType("char(36)"); |
||||
|
|
||||
|
b.Property<string>("Name") |
||||
|
.IsRequired() |
||||
|
.HasMaxLength(128) |
||||
|
.HasColumnType("varchar(128)"); |
||||
|
|
||||
|
b.Property<string>("ProviderKey") |
||||
|
.HasMaxLength(64) |
||||
|
.HasColumnType("varchar(64)"); |
||||
|
|
||||
|
b.Property<string>("ProviderName") |
||||
|
.HasMaxLength(64) |
||||
|
.HasColumnType("varchar(64)"); |
||||
|
|
||||
|
b.Property<string>("Value") |
||||
|
.IsRequired() |
||||
|
.HasMaxLength(2048) |
||||
|
.HasColumnType("varchar(2048)"); |
||||
|
|
||||
|
b.HasKey("Id"); |
||||
|
|
||||
|
b.HasIndex("Name", "ProviderName", "ProviderKey") |
||||
|
.IsUnique(); |
||||
|
|
||||
|
b.ToTable("AbpSettings", (string)null); |
||||
|
}); |
||||
|
|
||||
|
modelBuilder.Entity("Volo.Abp.SettingManagement.SettingDefinitionRecord", b => |
||||
|
{ |
||||
|
b.Property<Guid>("Id") |
||||
|
.ValueGeneratedOnAdd() |
||||
|
.HasColumnType("char(36)"); |
||||
|
|
||||
|
b.Property<string>("DefaultValue") |
||||
|
.HasMaxLength(2048) |
||||
|
.HasColumnType("varchar(2048)"); |
||||
|
|
||||
|
b.Property<string>("Description") |
||||
|
.HasMaxLength(512) |
||||
|
.HasColumnType("varchar(512)"); |
||||
|
|
||||
|
b.Property<string>("DisplayName") |
||||
|
.IsRequired() |
||||
|
.HasMaxLength(256) |
||||
|
.HasColumnType("varchar(256)"); |
||||
|
|
||||
|
b.Property<string>("ExtraProperties") |
||||
|
.HasColumnType("longtext") |
||||
|
.HasColumnName("ExtraProperties"); |
||||
|
|
||||
|
b.Property<bool>("IsEncrypted") |
||||
|
.HasColumnType("tinyint(1)"); |
||||
|
|
||||
|
b.Property<bool>("IsInherited") |
||||
|
.HasColumnType("tinyint(1)"); |
||||
|
|
||||
|
b.Property<bool>("IsVisibleToClients") |
||||
|
.HasColumnType("tinyint(1)"); |
||||
|
|
||||
|
b.Property<string>("Name") |
||||
|
.IsRequired() |
||||
|
.HasMaxLength(128) |
||||
|
.HasColumnType("varchar(128)"); |
||||
|
|
||||
|
b.Property<string>("Providers") |
||||
|
.HasMaxLength(1024) |
||||
|
.HasColumnType("varchar(1024)"); |
||||
|
|
||||
|
b.HasKey("Id"); |
||||
|
|
||||
|
b.HasIndex("Name") |
||||
|
.IsUnique(); |
||||
|
|
||||
|
b.ToTable("AbpSettingDefinitions", (string)null); |
||||
|
}); |
||||
|
|
||||
|
modelBuilder.Entity("LINGYUN.Abp.Saas.Tenants.Tenant", b => |
||||
|
{ |
||||
|
b.HasOne("LINGYUN.Abp.Saas.Editions.Edition", "Edition") |
||||
|
.WithMany() |
||||
|
.HasForeignKey("EditionId"); |
||||
|
|
||||
|
b.Navigation("Edition"); |
||||
|
}); |
||||
|
|
||||
|
modelBuilder.Entity("LINGYUN.Abp.Saas.Tenants.TenantConnectionString", b => |
||||
|
{ |
||||
|
b.HasOne("LINGYUN.Abp.Saas.Tenants.Tenant", null) |
||||
|
.WithMany("ConnectionStrings") |
||||
|
.HasForeignKey("TenantId") |
||||
|
.OnDelete(DeleteBehavior.Cascade) |
||||
|
.IsRequired(); |
||||
|
}); |
||||
|
|
||||
|
modelBuilder.Entity("LINGYUN.Abp.Saas.Tenants.Tenant", b => |
||||
|
{ |
||||
|
b.Navigation("ConnectionStrings"); |
||||
|
}); |
||||
|
#pragma warning restore 612, 618
|
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,39 @@ |
|||||
|
using Microsoft.EntityFrameworkCore.Migrations; |
||||
|
|
||||
|
#nullable disable |
||||
|
|
||||
|
namespace LY.MicroService.BackendAdmin.EntityFrameworkCore.Migrations |
||||
|
{ |
||||
|
/// <inheritdoc />
|
||||
|
public partial class UpgradeAbpFrameworkTo810 : Migration |
||||
|
{ |
||||
|
/// <inheritdoc />
|
||||
|
protected override void Up(MigrationBuilder migrationBuilder) |
||||
|
{ |
||||
|
migrationBuilder.AddColumn<string>( |
||||
|
name: "NormalizedName", |
||||
|
table: "AbpTenants", |
||||
|
type: "varchar(64)", |
||||
|
maxLength: 64, |
||||
|
nullable: true) |
||||
|
.Annotation("MySql:CharSet", "utf8mb4"); |
||||
|
|
||||
|
migrationBuilder.CreateIndex( |
||||
|
name: "IX_AbpTenants_NormalizedName", |
||||
|
table: "AbpTenants", |
||||
|
column: "NormalizedName"); |
||||
|
} |
||||
|
|
||||
|
/// <inheritdoc />
|
||||
|
protected override void Down(MigrationBuilder migrationBuilder) |
||||
|
{ |
||||
|
migrationBuilder.DropIndex( |
||||
|
name: "IX_AbpTenants_NormalizedName", |
||||
|
table: "AbpTenants"); |
||||
|
|
||||
|
migrationBuilder.DropColumn( |
||||
|
name: "NormalizedName", |
||||
|
table: "AbpTenants"); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -1,67 +1,69 @@ |
|||||
using LINGYUN.Abp.Saas.Editions; |
using LINGYUN.Abp.Saas.Editions; |
||||
using LINGYUN.Abp.Saas.Tenants; |
using LINGYUN.Abp.Saas.Tenants; |
||||
using Microsoft.EntityFrameworkCore; |
using Microsoft.EntityFrameworkCore; |
||||
using Volo.Abp; |
using Volo.Abp; |
||||
using Volo.Abp.EntityFrameworkCore.Modeling; |
using Volo.Abp.EntityFrameworkCore.Modeling; |
||||
|
|
||||
namespace LINGYUN.Abp.Saas.EntityFrameworkCore; |
namespace LINGYUN.Abp.Saas.EntityFrameworkCore; |
||||
|
|
||||
public static class AbpSaasDbContextModelCreatingExtensions |
public static class AbpSaasDbContextModelCreatingExtensions |
||||
{ |
{ |
||||
public static void ConfigureSaas( |
public static void ConfigureSaas( |
||||
this ModelBuilder builder) |
this ModelBuilder builder) |
||||
{ |
{ |
||||
Check.NotNull(builder, nameof(builder)); |
Check.NotNull(builder, nameof(builder)); |
||||
|
|
||||
if (builder.IsTenantOnlyDatabase()) |
if (builder.IsTenantOnlyDatabase()) |
||||
{ |
{ |
||||
return; |
return; |
||||
} |
} |
||||
|
|
||||
builder.Entity<Edition>(b => |
builder.Entity<Edition>(b => |
||||
{ |
{ |
||||
b.ToTable(AbpSaasDbProperties.DbTablePrefix + "Editions", AbpSaasDbProperties.DbSchema); |
b.ToTable(AbpSaasDbProperties.DbTablePrefix + "Editions", AbpSaasDbProperties.DbSchema); |
||||
|
|
||||
b.ConfigureByConvention(); |
b.ConfigureByConvention(); |
||||
|
|
||||
b.Property(t => t.DisplayName) |
b.Property(t => t.DisplayName) |
||||
.HasMaxLength(EditionConsts.MaxDisplayNameLength) |
.HasMaxLength(EditionConsts.MaxDisplayNameLength) |
||||
.IsRequired(); |
.IsRequired(); |
||||
|
|
||||
b.HasIndex(u => u.DisplayName); |
b.HasIndex(u => u.DisplayName); |
||||
|
|
||||
b.ApplyObjectExtensionMappings(); |
b.ApplyObjectExtensionMappings(); |
||||
}); |
}); |
||||
|
|
||||
builder.Entity<Tenant>(b => |
builder.Entity<Tenant>(b => |
||||
{ |
{ |
||||
b.ToTable(AbpSaasDbProperties.DbTablePrefix + "Tenants", AbpSaasDbProperties.DbSchema); |
b.ToTable(AbpSaasDbProperties.DbTablePrefix + "Tenants", AbpSaasDbProperties.DbSchema); |
||||
|
|
||||
b.ConfigureByConvention(); |
b.ConfigureByConvention(); |
||||
|
|
||||
b.Property(t => t.Name).IsRequired().HasMaxLength(TenantConsts.MaxNameLength); |
b.Property(t => t.Name).IsRequired().HasMaxLength(TenantConsts.MaxNameLength); |
||||
|
b.Property(t => t.NormalizedName).HasMaxLength(TenantConsts.MaxNameLength); |
||||
b.HasMany(u => u.ConnectionStrings).WithOne().HasForeignKey(uc => uc.TenantId).IsRequired(); |
|
||||
|
b.HasMany(u => u.ConnectionStrings).WithOne().HasForeignKey(uc => uc.TenantId).IsRequired(); |
||||
b.HasIndex(u => u.Name); |
|
||||
|
b.HasIndex(u => u.Name); |
||||
b.ApplyObjectExtensionMappings(); |
b.HasIndex(u => u.NormalizedName); |
||||
}); |
|
||||
|
b.ApplyObjectExtensionMappings(); |
||||
builder.Entity<TenantConnectionString>(b => |
}); |
||||
{ |
|
||||
b.ToTable(AbpSaasDbProperties.DbTablePrefix + "TenantConnectionStrings", AbpSaasDbProperties.DbSchema); |
builder.Entity<TenantConnectionString>(b => |
||||
|
{ |
||||
b.ConfigureByConvention(); |
b.ToTable(AbpSaasDbProperties.DbTablePrefix + "TenantConnectionStrings", AbpSaasDbProperties.DbSchema); |
||||
|
|
||||
b.HasKey(x => new { x.TenantId, x.Name }); |
b.ConfigureByConvention(); |
||||
|
|
||||
b.Property(cs => cs.Name).IsRequired().HasMaxLength(TenantConnectionStringConsts.MaxNameLength); |
b.HasKey(x => new { x.TenantId, x.Name }); |
||||
b.Property(cs => cs.Value).IsRequired().HasMaxLength(TenantConnectionStringConsts.MaxValueLength); |
|
||||
|
b.Property(cs => cs.Name).IsRequired().HasMaxLength(TenantConnectionStringConsts.MaxNameLength); |
||||
b.ApplyObjectExtensionMappings(); |
b.Property(cs => cs.Value).IsRequired().HasMaxLength(TenantConnectionStringConsts.MaxValueLength); |
||||
}); |
|
||||
|
b.ApplyObjectExtensionMappings(); |
||||
builder.TryConfigureObjectExtensions<SaasDbContext>(); |
}); |
||||
} |
|
||||
} |
builder.TryConfigureObjectExtensions<SaasDbContext>(); |
||||
|
} |
||||
|
} |
||||
|
|||||
@ -1,23 +1,23 @@ |
|||||
using Microsoft.AspNetCore.Authorization; |
using Microsoft.AspNetCore.Authorization; |
||||
using Microsoft.AspNetCore.Mvc; |
using Microsoft.AspNetCore.Mvc; |
||||
using System.Threading.Tasks; |
using System.Threading.Tasks; |
||||
using Volo.Abp.Account.Web.Pages.Account; |
using Volo.Abp.Account.Web.Pages.Account; |
||||
|
|
||||
namespace LY.MicroService.AuthServer.Pages.Account; |
namespace LY.MicroService.AuthServer.Pages.Account; |
||||
|
|
||||
[AllowAnonymous] |
[AllowAnonymous] |
||||
public class EmailConfirmConfirmationModel : AccountPageModel |
public class EmailConfirmConfirmationModel : AccountPageModel |
||||
{ |
{ |
||||
[BindProperty(SupportsGet = true)] |
[BindProperty(SupportsGet = true)] |
||||
public string ReturnUrl { get; set; } |
public string ReturnUrl { get; set; } |
||||
|
|
||||
[BindProperty(SupportsGet = true)] |
[BindProperty(SupportsGet = true)] |
||||
public string ReturnUrlHash { get; set; } |
public string ReturnUrlHash { get; set; } |
||||
|
|
||||
public virtual Task<IActionResult> OnGetAsync() |
public async virtual Task<IActionResult> OnGetAsync() |
||||
{ |
{ |
||||
ReturnUrl = GetRedirectUrl(ReturnUrl, ReturnUrlHash); |
ReturnUrl = await GetRedirectUrlAsync(ReturnUrl, ReturnUrlHash); |
||||
|
|
||||
return Task.FromResult<IActionResult>(Page()); |
return Page(); |
||||
} |
} |
||||
} |
} |
||||
|
|||||
@ -1,128 +1,128 @@ |
|||||
using LINGYUN.Abp.Account.Emailing; |
using LINGYUN.Abp.Account.Emailing; |
||||
using LINGYUN.Abp.Identity.Settings; |
using LINGYUN.Abp.Identity.Settings; |
||||
using Microsoft.AspNetCore.Mvc; |
using Microsoft.AspNetCore.Mvc; |
||||
using Microsoft.AspNetCore.Mvc.Rendering; |
using Microsoft.AspNetCore.Mvc.Rendering; |
||||
using System.Collections.Generic; |
using System.Collections.Generic; |
||||
using System.Linq; |
using System.Linq; |
||||
using System.Threading.Tasks; |
using System.Threading.Tasks; |
||||
using Volo.Abp; |
using Volo.Abp; |
||||
using Volo.Abp.Account.Localization; |
using Volo.Abp.Account.Localization; |
||||
using Volo.Abp.Account.Web.Pages.Account; |
using Volo.Abp.Account.Web.Pages.Account; |
||||
using Volo.Abp.Sms; |
using Volo.Abp.Sms; |
||||
|
|
||||
namespace LY.MicroService.AuthServer.Pages.Account |
namespace LY.MicroService.AuthServer.Pages.Account |
||||
{ |
{ |
||||
public class SendCodeModel : AccountPageModel |
public class SendCodeModel : AccountPageModel |
||||
{ |
{ |
||||
[BindProperty] |
[BindProperty] |
||||
public SendCodeInputModel Input { get; set; } |
public SendCodeInputModel Input { get; set; } |
||||
|
|
||||
[HiddenInput] |
[HiddenInput] |
||||
[BindProperty(SupportsGet = true)] |
[BindProperty(SupportsGet = true)] |
||||
public string ReturnUrl { get; set; } |
public string ReturnUrl { get; set; } |
||||
|
|
||||
[HiddenInput] |
[HiddenInput] |
||||
[BindProperty(SupportsGet = true)] |
[BindProperty(SupportsGet = true)] |
||||
public string ReturnUrlHash { get; set; } |
public string ReturnUrlHash { get; set; } |
||||
|
|
||||
[HiddenInput] |
[HiddenInput] |
||||
[BindProperty(SupportsGet = true)] |
[BindProperty(SupportsGet = true)] |
||||
public bool RememberMe { get; set; } |
public bool RememberMe { get; set; } |
||||
|
|
||||
public IEnumerable<SelectListItem> Providers { get; set; } |
public IEnumerable<SelectListItem> Providers { get; set; } |
||||
|
|
||||
protected ISmsSender SmsSender { get; } |
protected ISmsSender SmsSender { get; } |
||||
|
|
||||
protected IAccountEmailVerifySender AccountEmailVerifySender { get; } |
protected IAccountEmailVerifySender AccountEmailVerifySender { get; } |
||||
|
|
||||
public SendCodeModel( |
public SendCodeModel( |
||||
ISmsSender smsSender, |
ISmsSender smsSender, |
||||
IAccountEmailVerifySender accountEmailVerifySender) |
IAccountEmailVerifySender accountEmailVerifySender) |
||||
{ |
{ |
||||
SmsSender = smsSender; |
SmsSender = smsSender; |
||||
AccountEmailVerifySender = accountEmailVerifySender; |
AccountEmailVerifySender = accountEmailVerifySender; |
||||
|
|
||||
LocalizationResourceType = typeof(AccountResource); |
LocalizationResourceType = typeof(AccountResource); |
||||
} |
} |
||||
|
|
||||
public virtual async Task<IActionResult> OnGetAsync() |
public virtual async Task<IActionResult> OnGetAsync() |
||||
{ |
{ |
||||
Input = new SendCodeInputModel(); |
Input = new SendCodeInputModel(); |
||||
|
|
||||
var user = await SignInManager.GetTwoFactorAuthenticationUserAsync(); |
var user = await SignInManager.GetTwoFactorAuthenticationUserAsync(); |
||||
if (user == null) |
if (user == null) |
||||
{ |
{ |
||||
// 双因素信息验证失败,一般都是超时了或者用户信息变更
|
// 双因素信息验证失败,一般都是超时了或者用户信息变更
|
||||
Alerts.Warning(L["TwoFactorAuthenticationInvaidUser"]); |
Alerts.Warning(L["TwoFactorAuthenticationInvaidUser"]); |
||||
return Page(); |
return Page(); |
||||
} |
} |
||||
var userFactors = await UserManager.GetValidTwoFactorProvidersAsync(user); |
var userFactors = await UserManager.GetValidTwoFactorProvidersAsync(user); |
||||
Providers = userFactors.Select(purpose => new SelectListItem { Text = purpose, Value = purpose }).ToList(); |
Providers = userFactors.Select(purpose => new SelectListItem { Text = purpose, Value = purpose }).ToList(); |
||||
|
|
||||
return Page(); |
return Page(); |
||||
} |
} |
||||
|
|
||||
public virtual async Task<IActionResult> OnPostAsync() |
public virtual async Task<IActionResult> OnPostAsync() |
||||
{ |
{ |
||||
var user = await SignInManager.GetTwoFactorAuthenticationUserAsync(); |
var user = await SignInManager.GetTwoFactorAuthenticationUserAsync(); |
||||
if (user == null) |
if (user == null) |
||||
{ |
{ |
||||
Alerts.Warning(L["TwoFactorAuthenticationInvaidUser"]); |
Alerts.Warning(L["TwoFactorAuthenticationInvaidUser"]); |
||||
return Page(); |
return Page(); |
||||
} |
} |
||||
|
|
||||
if (Input.SelectedProvider == "Authenticator") |
if (Input.SelectedProvider == "Authenticator") |
||||
{ |
{ |
||||
// 用户通过邮件/短信链接进入授权页面
|
// 用户通过邮件/短信链接进入授权页面
|
||||
return RedirectToPage("VerifyAuthenticatorCode", new |
return RedirectToPage("VerifyAuthenticatorCode", new |
||||
{ |
{ |
||||
returnUrl = ReturnUrl, |
returnUrl = ReturnUrl, |
||||
returnUrlHash = ReturnUrlHash, |
returnUrlHash = ReturnUrlHash, |
||||
rememberMe = RememberMe |
rememberMe = RememberMe |
||||
}); |
}); |
||||
} |
} |
||||
// 生成验证码
|
// 生成验证码
|
||||
var code = await UserManager.GenerateTwoFactorTokenAsync(user, Input.SelectedProvider); |
var code = await UserManager.GenerateTwoFactorTokenAsync(user, Input.SelectedProvider); |
||||
if (string.IsNullOrWhiteSpace(code)) |
if (string.IsNullOrWhiteSpace(code)) |
||||
{ |
{ |
||||
Alerts.Warning(L["InvaidGenerateTwoFactorToken"]); |
Alerts.Warning(L["InvaidGenerateTwoFactorToken"]); |
||||
return Page(); |
return Page(); |
||||
} |
} |
||||
|
|
||||
if (Input.SelectedProvider == "Email") |
if (Input.SelectedProvider == "Email") |
||||
{ |
{ |
||||
await AccountEmailVerifySender |
await AccountEmailVerifySender |
||||
.SendMailLoginVerifyCodeAsync( |
.SendMailLoginVerifyCodeAsync( |
||||
code, |
code, |
||||
user.UserName, |
user.UserName, |
||||
user.Email); |
user.Email); |
||||
} |
} |
||||
else if (Input.SelectedProvider == "Phone") |
else if (Input.SelectedProvider == "Phone") |
||||
{ |
{ |
||||
var phoneNumber = await UserManager.GetPhoneNumberAsync(user); |
var phoneNumber = await UserManager.GetPhoneNumberAsync(user); |
||||
var templateCode = await SettingProvider.GetOrNullAsync(IdentitySettingNames.User.SmsUserSignin); |
var templateCode = await SettingProvider.GetOrNullAsync(IdentitySettingNames.User.SmsUserSignin); |
||||
Check.NotNullOrWhiteSpace(templateCode, nameof(IdentitySettingNames.User.SmsUserSignin)); |
Check.NotNullOrWhiteSpace(templateCode, nameof(IdentitySettingNames.User.SmsUserSignin)); |
||||
|
|
||||
// TODO: 以后扩展短信模板发送
|
// TODO: 以后扩展短信模板发送
|
||||
var smsMessage = new SmsMessage(phoneNumber, code); |
var smsMessage = new SmsMessage(phoneNumber, code); |
||||
smsMessage.Properties.Add("code", code); |
smsMessage.Properties.Add("code", code); |
||||
smsMessage.Properties.Add("TemplateCode", templateCode); |
smsMessage.Properties.Add("TemplateCode", templateCode); |
||||
|
|
||||
await SmsSender.SendAsync(smsMessage); |
await SmsSender.SendAsync(smsMessage); |
||||
} |
} |
||||
|
|
||||
return RedirectToPage("VerifyCode", new |
return RedirectToPage("VerifyCode", new |
||||
{ |
{ |
||||
provider = Input.SelectedProvider, |
provider = Input.SelectedProvider, |
||||
returnUrl = ReturnUrl, |
returnUrl = ReturnUrl, |
||||
returnUrlHash = ReturnUrlHash, |
returnUrlHash = ReturnUrlHash, |
||||
rememberMe = RememberMe |
rememberMe = RememberMe |
||||
}); |
}); |
||||
} |
} |
||||
} |
} |
||||
|
|
||||
public class SendCodeInputModel |
public class SendCodeInputModel |
||||
{ |
{ |
||||
public string SelectedProvider { get; set; } |
public string SelectedProvider { get; set; } |
||||
} |
} |
||||
} |
} |
||||
|
|||||
@ -1,17 +1,17 @@ |
|||||
using Microsoft.AspNetCore.Authorization; |
using Microsoft.AspNetCore.Authorization; |
||||
using Microsoft.AspNetCore.Mvc; |
using Microsoft.AspNetCore.Mvc; |
||||
using System; |
using System; |
||||
using System.Threading.Tasks; |
using System.Threading.Tasks; |
||||
using Volo.Abp.Account.Web.Pages.Account; |
using Volo.Abp.Account.Web.Pages.Account; |
||||
|
|
||||
namespace LY.MicroService.IdentityServer.Pages.Account; |
namespace LY.MicroService.IdentityServer.Pages.Account; |
||||
|
|
||||
[AllowAnonymous] |
[AllowAnonymous] |
||||
public class EmailConfirmConfirmationModel : AccountPageModel |
public class EmailConfirmConfirmationModel : AccountPageModel |
||||
{ |
{ |
||||
[BindProperty(SupportsGet = true)] |
[BindProperty(SupportsGet = true)] |
||||
public string ReturnUrl { get; set; } |
public string ReturnUrl { get; set; } |
||||
|
|
||||
[BindProperty(SupportsGet = true)] |
[BindProperty(SupportsGet = true)] |
||||
public string ReturnUrlHash { get; set; } |
public string ReturnUrlHash { get; set; } |
||||
} |
} |
||||
|
|||||
Loading…
Reference in new issue