Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
I
Implementation-IdentityServer4
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Alan Farhadi
Implementation-IdentityServer4
Commits
b086707d
Commit
b086707d
authored
May 31, 2020
by
alan.f
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add-efcore-setup
parent
f61b6448
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
3411 additions
and
9 deletions
+3411
-9
20200531120857_init.Designer.cs
.../Migrations/AppMigrations/20200531120857_init.Designer.cs
+273
-0
20200531120857_init.cs
...rver/Data/Migrations/AppMigrations/20200531120857_init.cs
+219
-0
AppDbContextModelSnapshot.cs
...ata/Migrations/AppMigrations/AppDbContextModelSnapshot.cs
+271
-0
20200531115008_InitialIdentityServerConfigurationDbMigration.Designer.cs
...InitialIdentityServerConfigurationDbMigration.Designer.cs
+835
-0
20200531115008_InitialIdentityServerConfigurationDbMigration.cs
...31115008_InitialIdentityServerConfigurationDbMigration.cs
+607
-0
ConfigurationDbContextModelSnapshot.cs
...er/ConfigurationDb/ConfigurationDbContextModelSnapshot.cs
+833
-0
20200531114247_InitialIdentityServerPersistedGrantDbMigration.Designer.cs
...nitialIdentityServerPersistedGrantDbMigration.Designer.cs
+108
-0
20200531114247_InitialIdentityServerPersistedGrantDbMigration.cs
...1114247_InitialIdentityServerPersistedGrantDbMigration.cs
+75
-0
PersistedGrantDbContextModelSnapshot.cs
.../PersistedGrantDb/PersistedGrantDbContextModelSnapshot.cs
+106
-0
IdentityServer.csproj
IdentityServer/IdentityServer.csproj
+8
-1
Program.cs
IdentityServer/Program.cs
+34
-0
Startup.cs
IdentityServer/Startup.cs
+27
-5
Login.cshtml
IdentityServer/Views/Auth/Login.cshtml
+3
-3
appsettings.json
IdentityServer/appsettings.json
+3
-0
db-scripts.txt
IdentityServer/db-scripts.txt
+9
-0
No files found.
IdentityServer/Data/Migrations/AppMigrations/20200531120857_init.Designer.cs
0 → 100644
View file @
b086707d
// <auto-generated />
using
System
;
using
IdentityServer.Data
;
using
Microsoft.EntityFrameworkCore
;
using
Microsoft.EntityFrameworkCore.Infrastructure
;
using
Microsoft.EntityFrameworkCore.Metadata
;
using
Microsoft.EntityFrameworkCore.Migrations
;
using
Microsoft.EntityFrameworkCore.Storage.ValueConversion
;
namespace
IdentityServer.Data.Migrations.AppMigrations
{
[
DbContext
(
typeof
(
AppDbContext
))]
[
Migration
(
"20200531120857_init"
)]
partial
class
init
{
protected
override
void
BuildTargetModel
(
ModelBuilder
modelBuilder
)
{
#pragma warning disable 612, 618
modelBuilder
.
HasAnnotation
(
"ProductVersion"
,
"3.1.4"
)
.
HasAnnotation
(
"Relational:MaxIdentifierLength"
,
128
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
modelBuilder
.
Entity
(
"Microsoft.AspNetCore.Identity.IdentityRole"
,
b
=>
{
b
.
Property
<
string
>(
"Id"
)
.
HasColumnType
(
"nvarchar(450)"
);
b
.
Property
<
string
>(
"ConcurrencyStamp"
)
.
IsConcurrencyToken
()
.
HasColumnType
(
"nvarchar(max)"
);
b
.
Property
<
string
>(
"Name"
)
.
HasColumnType
(
"nvarchar(256)"
)
.
HasMaxLength
(
256
);
b
.
Property
<
string
>(
"NormalizedName"
)
.
HasColumnType
(
"nvarchar(256)"
)
.
HasMaxLength
(
256
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"NormalizedName"
)
.
IsUnique
()
.
HasName
(
"RoleNameIndex"
)
.
HasFilter
(
"[NormalizedName] IS NOT NULL"
);
b
.
ToTable
(
"AspNetRoles"
);
});
modelBuilder
.
Entity
(
"Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
string
>(
"ClaimType"
)
.
HasColumnType
(
"nvarchar(max)"
);
b
.
Property
<
string
>(
"ClaimValue"
)
.
HasColumnType
(
"nvarchar(max)"
);
b
.
Property
<
string
>(
"RoleId"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(450)"
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"RoleId"
);
b
.
ToTable
(
"AspNetRoleClaims"
);
});
modelBuilder
.
Entity
(
"Microsoft.AspNetCore.Identity.IdentityUser"
,
b
=>
{
b
.
Property
<
string
>(
"Id"
)
.
HasColumnType
(
"nvarchar(450)"
);
b
.
Property
<
int
>(
"AccessFailedCount"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
string
>(
"ConcurrencyStamp"
)
.
IsConcurrencyToken
()
.
HasColumnType
(
"nvarchar(max)"
);
b
.
Property
<
string
>(
"Email"
)
.
HasColumnType
(
"nvarchar(256)"
)
.
HasMaxLength
(
256
);
b
.
Property
<
bool
>(
"EmailConfirmed"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
bool
>(
"LockoutEnabled"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
DateTimeOffset
?>(
"LockoutEnd"
)
.
HasColumnType
(
"datetimeoffset"
);
b
.
Property
<
string
>(
"NormalizedEmail"
)
.
HasColumnType
(
"nvarchar(256)"
)
.
HasMaxLength
(
256
);
b
.
Property
<
string
>(
"NormalizedUserName"
)
.
HasColumnType
(
"nvarchar(256)"
)
.
HasMaxLength
(
256
);
b
.
Property
<
string
>(
"PasswordHash"
)
.
HasColumnType
(
"nvarchar(max)"
);
b
.
Property
<
string
>(
"PhoneNumber"
)
.
HasColumnType
(
"nvarchar(max)"
);
b
.
Property
<
bool
>(
"PhoneNumberConfirmed"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
string
>(
"SecurityStamp"
)
.
HasColumnType
(
"nvarchar(max)"
);
b
.
Property
<
bool
>(
"TwoFactorEnabled"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
string
>(
"UserName"
)
.
HasColumnType
(
"nvarchar(256)"
)
.
HasMaxLength
(
256
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"NormalizedEmail"
)
.
HasName
(
"EmailIndex"
);
b
.
HasIndex
(
"NormalizedUserName"
)
.
IsUnique
()
.
HasName
(
"UserNameIndex"
)
.
HasFilter
(
"[NormalizedUserName] IS NOT NULL"
);
b
.
ToTable
(
"AspNetUsers"
);
});
modelBuilder
.
Entity
(
"Microsoft.AspNetCore.Identity.IdentityUserClaim<string>"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
string
>(
"ClaimType"
)
.
HasColumnType
(
"nvarchar(max)"
);
b
.
Property
<
string
>(
"ClaimValue"
)
.
HasColumnType
(
"nvarchar(max)"
);
b
.
Property
<
string
>(
"UserId"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(450)"
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"UserId"
);
b
.
ToTable
(
"AspNetUserClaims"
);
});
modelBuilder
.
Entity
(
"Microsoft.AspNetCore.Identity.IdentityUserLogin<string>"
,
b
=>
{
b
.
Property
<
string
>(
"LoginProvider"
)
.
HasColumnType
(
"nvarchar(450)"
);
b
.
Property
<
string
>(
"ProviderKey"
)
.
HasColumnType
(
"nvarchar(450)"
);
b
.
Property
<
string
>(
"ProviderDisplayName"
)
.
HasColumnType
(
"nvarchar(max)"
);
b
.
Property
<
string
>(
"UserId"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(450)"
);
b
.
HasKey
(
"LoginProvider"
,
"ProviderKey"
);
b
.
HasIndex
(
"UserId"
);
b
.
ToTable
(
"AspNetUserLogins"
);
});
modelBuilder
.
Entity
(
"Microsoft.AspNetCore.Identity.IdentityUserRole<string>"
,
b
=>
{
b
.
Property
<
string
>(
"UserId"
)
.
HasColumnType
(
"nvarchar(450)"
);
b
.
Property
<
string
>(
"RoleId"
)
.
HasColumnType
(
"nvarchar(450)"
);
b
.
HasKey
(
"UserId"
,
"RoleId"
);
b
.
HasIndex
(
"RoleId"
);
b
.
ToTable
(
"AspNetUserRoles"
);
});
modelBuilder
.
Entity
(
"Microsoft.AspNetCore.Identity.IdentityUserToken<string>"
,
b
=>
{
b
.
Property
<
string
>(
"UserId"
)
.
HasColumnType
(
"nvarchar(450)"
);
b
.
Property
<
string
>(
"LoginProvider"
)
.
HasColumnType
(
"nvarchar(450)"
);
b
.
Property
<
string
>(
"Name"
)
.
HasColumnType
(
"nvarchar(450)"
);
b
.
Property
<
string
>(
"Value"
)
.
HasColumnType
(
"nvarchar(max)"
);
b
.
HasKey
(
"UserId"
,
"LoginProvider"
,
"Name"
);
b
.
ToTable
(
"AspNetUserTokens"
);
});
modelBuilder
.
Entity
(
"Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>"
,
b
=>
{
b
.
HasOne
(
"Microsoft.AspNetCore.Identity.IdentityRole"
,
null
)
.
WithMany
()
.
HasForeignKey
(
"RoleId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
modelBuilder
.
Entity
(
"Microsoft.AspNetCore.Identity.IdentityUserClaim<string>"
,
b
=>
{
b
.
HasOne
(
"Microsoft.AspNetCore.Identity.IdentityUser"
,
null
)
.
WithMany
()
.
HasForeignKey
(
"UserId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
modelBuilder
.
Entity
(
"Microsoft.AspNetCore.Identity.IdentityUserLogin<string>"
,
b
=>
{
b
.
HasOne
(
"Microsoft.AspNetCore.Identity.IdentityUser"
,
null
)
.
WithMany
()
.
HasForeignKey
(
"UserId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
modelBuilder
.
Entity
(
"Microsoft.AspNetCore.Identity.IdentityUserRole<string>"
,
b
=>
{
b
.
HasOne
(
"Microsoft.AspNetCore.Identity.IdentityRole"
,
null
)
.
WithMany
()
.
HasForeignKey
(
"RoleId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
b
.
HasOne
(
"Microsoft.AspNetCore.Identity.IdentityUser"
,
null
)
.
WithMany
()
.
HasForeignKey
(
"UserId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
modelBuilder
.
Entity
(
"Microsoft.AspNetCore.Identity.IdentityUserToken<string>"
,
b
=>
{
b
.
HasOne
(
"Microsoft.AspNetCore.Identity.IdentityUser"
,
null
)
.
WithMany
()
.
HasForeignKey
(
"UserId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
#pragma warning restore 612, 618
}
}
}
IdentityServer/Data/Migrations/AppMigrations/20200531120857_init.cs
0 → 100644
View file @
b086707d
using
System
;
using
Microsoft.EntityFrameworkCore.Migrations
;
namespace
IdentityServer.Data.Migrations.AppMigrations
{
public
partial
class
init
:
Migration
{
protected
override
void
Up
(
MigrationBuilder
migrationBuilder
)
{
migrationBuilder
.
CreateTable
(
name
:
"AspNetRoles"
,
columns
:
table
=>
new
{
Id
=
table
.
Column
<
string
>(
nullable
:
false
),
Name
=
table
.
Column
<
string
>(
maxLength
:
256
,
nullable
:
true
),
NormalizedName
=
table
.
Column
<
string
>(
maxLength
:
256
,
nullable
:
true
),
ConcurrencyStamp
=
table
.
Column
<
string
>(
nullable
:
true
)
},
constraints
:
table
=>
{
table
.
PrimaryKey
(
"PK_AspNetRoles"
,
x
=>
x
.
Id
);
});
migrationBuilder
.
CreateTable
(
name
:
"AspNetUsers"
,
columns
:
table
=>
new
{
Id
=
table
.
Column
<
string
>(
nullable
:
false
),
UserName
=
table
.
Column
<
string
>(
maxLength
:
256
,
nullable
:
true
),
NormalizedUserName
=
table
.
Column
<
string
>(
maxLength
:
256
,
nullable
:
true
),
Email
=
table
.
Column
<
string
>(
maxLength
:
256
,
nullable
:
true
),
NormalizedEmail
=
table
.
Column
<
string
>(
maxLength
:
256
,
nullable
:
true
),
EmailConfirmed
=
table
.
Column
<
bool
>(
nullable
:
false
),
PasswordHash
=
table
.
Column
<
string
>(
nullable
:
true
),
SecurityStamp
=
table
.
Column
<
string
>(
nullable
:
true
),
ConcurrencyStamp
=
table
.
Column
<
string
>(
nullable
:
true
),
PhoneNumber
=
table
.
Column
<
string
>(
nullable
:
true
),
PhoneNumberConfirmed
=
table
.
Column
<
bool
>(
nullable
:
false
),
TwoFactorEnabled
=
table
.
Column
<
bool
>(
nullable
:
false
),
LockoutEnd
=
table
.
Column
<
DateTimeOffset
>(
nullable
:
true
),
LockoutEnabled
=
table
.
Column
<
bool
>(
nullable
:
false
),
AccessFailedCount
=
table
.
Column
<
int
>(
nullable
:
false
)
},
constraints
:
table
=>
{
table
.
PrimaryKey
(
"PK_AspNetUsers"
,
x
=>
x
.
Id
);
});
migrationBuilder
.
CreateTable
(
name
:
"AspNetRoleClaims"
,
columns
:
table
=>
new
{
Id
=
table
.
Column
<
int
>(
nullable
:
false
)
.
Annotation
(
"SqlServer:Identity"
,
"1, 1"
),
RoleId
=
table
.
Column
<
string
>(
nullable
:
false
),
ClaimType
=
table
.
Column
<
string
>(
nullable
:
true
),
ClaimValue
=
table
.
Column
<
string
>(
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
>(
nullable
:
false
)
.
Annotation
(
"SqlServer:Identity"
,
"1, 1"
),
UserId
=
table
.
Column
<
string
>(
nullable
:
false
),
ClaimType
=
table
.
Column
<
string
>(
nullable
:
true
),
ClaimValue
=
table
.
Column
<
string
>(
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
>(
nullable
:
false
),
ProviderKey
=
table
.
Column
<
string
>(
nullable
:
false
),
ProviderDisplayName
=
table
.
Column
<
string
>(
nullable
:
true
),
UserId
=
table
.
Column
<
string
>(
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
<
string
>(
nullable
:
false
),
RoleId
=
table
.
Column
<
string
>(
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
<
string
>(
nullable
:
false
),
LoginProvider
=
table
.
Column
<
string
>(
nullable
:
false
),
Name
=
table
.
Column
<
string
>(
nullable
:
false
),
Value
=
table
.
Column
<
string
>(
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
,
filter
:
"[NormalizedName] IS NOT NULL"
);
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
:
"UserNameIndex"
,
table
:
"AspNetUsers"
,
column
:
"NormalizedUserName"
,
unique
:
true
,
filter
:
"[NormalizedUserName] IS NOT NULL"
);
}
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"
);
}
}
}
IdentityServer/Data/Migrations/AppMigrations/AppDbContextModelSnapshot.cs
0 → 100644
View file @
b086707d
// <auto-generated />
using
System
;
using
IdentityServer.Data
;
using
Microsoft.EntityFrameworkCore
;
using
Microsoft.EntityFrameworkCore.Infrastructure
;
using
Microsoft.EntityFrameworkCore.Metadata
;
using
Microsoft.EntityFrameworkCore.Storage.ValueConversion
;
namespace
IdentityServer.Data.Migrations.AppMigrations
{
[
DbContext
(
typeof
(
AppDbContext
))]
partial
class
AppDbContextModelSnapshot
:
ModelSnapshot
{
protected
override
void
BuildModel
(
ModelBuilder
modelBuilder
)
{
#pragma warning disable 612, 618
modelBuilder
.
HasAnnotation
(
"ProductVersion"
,
"3.1.4"
)
.
HasAnnotation
(
"Relational:MaxIdentifierLength"
,
128
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
modelBuilder
.
Entity
(
"Microsoft.AspNetCore.Identity.IdentityRole"
,
b
=>
{
b
.
Property
<
string
>(
"Id"
)
.
HasColumnType
(
"nvarchar(450)"
);
b
.
Property
<
string
>(
"ConcurrencyStamp"
)
.
IsConcurrencyToken
()
.
HasColumnType
(
"nvarchar(max)"
);
b
.
Property
<
string
>(
"Name"
)
.
HasColumnType
(
"nvarchar(256)"
)
.
HasMaxLength
(
256
);
b
.
Property
<
string
>(
"NormalizedName"
)
.
HasColumnType
(
"nvarchar(256)"
)
.
HasMaxLength
(
256
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"NormalizedName"
)
.
IsUnique
()
.
HasName
(
"RoleNameIndex"
)
.
HasFilter
(
"[NormalizedName] IS NOT NULL"
);
b
.
ToTable
(
"AspNetRoles"
);
});
modelBuilder
.
Entity
(
"Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
string
>(
"ClaimType"
)
.
HasColumnType
(
"nvarchar(max)"
);
b
.
Property
<
string
>(
"ClaimValue"
)
.
HasColumnType
(
"nvarchar(max)"
);
b
.
Property
<
string
>(
"RoleId"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(450)"
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"RoleId"
);
b
.
ToTable
(
"AspNetRoleClaims"
);
});
modelBuilder
.
Entity
(
"Microsoft.AspNetCore.Identity.IdentityUser"
,
b
=>
{
b
.
Property
<
string
>(
"Id"
)
.
HasColumnType
(
"nvarchar(450)"
);
b
.
Property
<
int
>(
"AccessFailedCount"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
string
>(
"ConcurrencyStamp"
)
.
IsConcurrencyToken
()
.
HasColumnType
(
"nvarchar(max)"
);
b
.
Property
<
string
>(
"Email"
)
.
HasColumnType
(
"nvarchar(256)"
)
.
HasMaxLength
(
256
);
b
.
Property
<
bool
>(
"EmailConfirmed"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
bool
>(
"LockoutEnabled"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
DateTimeOffset
?>(
"LockoutEnd"
)
.
HasColumnType
(
"datetimeoffset"
);
b
.
Property
<
string
>(
"NormalizedEmail"
)
.
HasColumnType
(
"nvarchar(256)"
)
.
HasMaxLength
(
256
);
b
.
Property
<
string
>(
"NormalizedUserName"
)
.
HasColumnType
(
"nvarchar(256)"
)
.
HasMaxLength
(
256
);
b
.
Property
<
string
>(
"PasswordHash"
)
.
HasColumnType
(
"nvarchar(max)"
);
b
.
Property
<
string
>(
"PhoneNumber"
)
.
HasColumnType
(
"nvarchar(max)"
);
b
.
Property
<
bool
>(
"PhoneNumberConfirmed"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
string
>(
"SecurityStamp"
)
.
HasColumnType
(
"nvarchar(max)"
);
b
.
Property
<
bool
>(
"TwoFactorEnabled"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
string
>(
"UserName"
)
.
HasColumnType
(
"nvarchar(256)"
)
.
HasMaxLength
(
256
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"NormalizedEmail"
)
.
HasName
(
"EmailIndex"
);
b
.
HasIndex
(
"NormalizedUserName"
)
.
IsUnique
()
.
HasName
(
"UserNameIndex"
)
.
HasFilter
(
"[NormalizedUserName] IS NOT NULL"
);
b
.
ToTable
(
"AspNetUsers"
);
});
modelBuilder
.
Entity
(
"Microsoft.AspNetCore.Identity.IdentityUserClaim<string>"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
string
>(
"ClaimType"
)
.
HasColumnType
(
"nvarchar(max)"
);
b
.
Property
<
string
>(
"ClaimValue"
)
.
HasColumnType
(
"nvarchar(max)"
);
b
.
Property
<
string
>(
"UserId"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(450)"
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"UserId"
);
b
.
ToTable
(
"AspNetUserClaims"
);
});
modelBuilder
.
Entity
(
"Microsoft.AspNetCore.Identity.IdentityUserLogin<string>"
,
b
=>
{
b
.
Property
<
string
>(
"LoginProvider"
)
.
HasColumnType
(
"nvarchar(450)"
);
b
.
Property
<
string
>(
"ProviderKey"
)
.
HasColumnType
(
"nvarchar(450)"
);
b
.
Property
<
string
>(
"ProviderDisplayName"
)
.
HasColumnType
(
"nvarchar(max)"
);
b
.
Property
<
string
>(
"UserId"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(450)"
);
b
.
HasKey
(
"LoginProvider"
,
"ProviderKey"
);
b
.
HasIndex
(
"UserId"
);
b
.
ToTable
(
"AspNetUserLogins"
);
});
modelBuilder
.
Entity
(
"Microsoft.AspNetCore.Identity.IdentityUserRole<string>"
,
b
=>
{
b
.
Property
<
string
>(
"UserId"
)
.
HasColumnType
(
"nvarchar(450)"
);
b
.
Property
<
string
>(
"RoleId"
)
.
HasColumnType
(
"nvarchar(450)"
);
b
.
HasKey
(
"UserId"
,
"RoleId"
);
b
.
HasIndex
(
"RoleId"
);
b
.
ToTable
(
"AspNetUserRoles"
);
});
modelBuilder
.
Entity
(
"Microsoft.AspNetCore.Identity.IdentityUserToken<string>"
,
b
=>
{
b
.
Property
<
string
>(
"UserId"
)
.
HasColumnType
(
"nvarchar(450)"
);
b
.
Property
<
string
>(
"LoginProvider"
)
.
HasColumnType
(
"nvarchar(450)"
);
b
.
Property
<
string
>(
"Name"
)
.
HasColumnType
(
"nvarchar(450)"
);
b
.
Property
<
string
>(
"Value"
)
.
HasColumnType
(
"nvarchar(max)"
);
b
.
HasKey
(
"UserId"
,
"LoginProvider"
,
"Name"
);
b
.
ToTable
(
"AspNetUserTokens"
);
});
modelBuilder
.
Entity
(
"Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>"
,
b
=>
{
b
.
HasOne
(
"Microsoft.AspNetCore.Identity.IdentityRole"
,
null
)
.
WithMany
()
.
HasForeignKey
(
"RoleId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
modelBuilder
.
Entity
(
"Microsoft.AspNetCore.Identity.IdentityUserClaim<string>"
,
b
=>
{
b
.
HasOne
(
"Microsoft.AspNetCore.Identity.IdentityUser"
,
null
)
.
WithMany
()
.
HasForeignKey
(
"UserId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
modelBuilder
.
Entity
(
"Microsoft.AspNetCore.Identity.IdentityUserLogin<string>"
,
b
=>
{
b
.
HasOne
(
"Microsoft.AspNetCore.Identity.IdentityUser"
,
null
)
.
WithMany
()
.
HasForeignKey
(
"UserId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
modelBuilder
.
Entity
(
"Microsoft.AspNetCore.Identity.IdentityUserRole<string>"
,
b
=>
{
b
.
HasOne
(
"Microsoft.AspNetCore.Identity.IdentityRole"
,
null
)
.
WithMany
()
.
HasForeignKey
(
"RoleId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
b
.
HasOne
(
"Microsoft.AspNetCore.Identity.IdentityUser"
,
null
)
.
WithMany
()
.
HasForeignKey
(
"UserId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
modelBuilder
.
Entity
(
"Microsoft.AspNetCore.Identity.IdentityUserToken<string>"
,
b
=>
{
b
.
HasOne
(
"Microsoft.AspNetCore.Identity.IdentityUser"
,
null
)
.
WithMany
()
.
HasForeignKey
(
"UserId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
#pragma warning restore 612, 618
}
}
}
IdentityServer/Data/Migrations/IdentityServer/ConfigurationDb/20200531115008_InitialIdentityServerConfigurationDbMigration.Designer.cs
0 → 100644
View file @
b086707d
// <auto-generated />
using
System
;
using
IdentityServer4.EntityFramework.DbContexts
;
using
Microsoft.EntityFrameworkCore
;
using
Microsoft.EntityFrameworkCore.Infrastructure
;
using
Microsoft.EntityFrameworkCore.Metadata
;
using
Microsoft.EntityFrameworkCore.Migrations
;
using
Microsoft.EntityFrameworkCore.Storage.ValueConversion
;
namespace
IdentityServer.Data.Migrations.IdentityServer.ConfigurationDb
{
[
DbContext
(
typeof
(
ConfigurationDbContext
))]
[
Migration
(
"20200531115008_InitialIdentityServerConfigurationDbMigration"
)]
partial
class
InitialIdentityServerConfigurationDbMigration
{
protected
override
void
BuildTargetModel
(
ModelBuilder
modelBuilder
)
{
#pragma warning disable 612, 618
modelBuilder
.
HasAnnotation
(
"ProductVersion"
,
"3.1.4"
)
.
HasAnnotation
(
"Relational:MaxIdentifierLength"
,
128
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ApiResource"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
DateTime
>(
"Created"
)
.
HasColumnType
(
"datetime2"
);
b
.
Property
<
string
>(
"Description"
)
.
HasColumnType
(
"nvarchar(1000)"
)
.
HasMaxLength
(
1000
);
b
.
Property
<
string
>(
"DisplayName"
)
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
Property
<
bool
>(
"Enabled"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
DateTime
?>(
"LastAccessed"
)
.
HasColumnType
(
"datetime2"
);
b
.
Property
<
string
>(
"Name"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
Property
<
bool
>(
"NonEditable"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
DateTime
?>(
"Updated"
)
.
HasColumnType
(
"datetime2"
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"Name"
)
.
IsUnique
();
b
.
ToTable
(
"ApiResources"
);
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ApiResourceClaim"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
int
>(
"ApiResourceId"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
string
>(
"Type"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"ApiResourceId"
);
b
.
ToTable
(
"ApiClaims"
);
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ApiResourceProperty"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
int
>(
"ApiResourceId"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
string
>(
"Key"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(250)"
)
.
HasMaxLength
(
250
);
b
.
Property
<
string
>(
"Value"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(2000)"
)
.
HasMaxLength
(
2000
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"ApiResourceId"
);
b
.
ToTable
(
"ApiProperties"
);
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ApiScope"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
int
>(
"ApiResourceId"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
string
>(
"Description"
)
.
HasColumnType
(
"nvarchar(1000)"
)
.
HasMaxLength
(
1000
);
b
.
Property
<
string
>(
"DisplayName"
)
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
Property
<
bool
>(
"Emphasize"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
string
>(
"Name"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
Property
<
bool
>(
"Required"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
bool
>(
"ShowInDiscoveryDocument"
)
.
HasColumnType
(
"bit"
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"ApiResourceId"
);
b
.
HasIndex
(
"Name"
)
.
IsUnique
();
b
.
ToTable
(
"ApiScopes"
);
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ApiScopeClaim"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
int
>(
"ApiScopeId"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
string
>(
"Type"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"ApiScopeId"
);
b
.
ToTable
(
"ApiScopeClaims"
);
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ApiSecret"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
int
>(
"ApiResourceId"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
DateTime
>(
"Created"
)
.
HasColumnType
(
"datetime2"
);
b
.
Property
<
string
>(
"Description"
)
.
HasColumnType
(
"nvarchar(1000)"
)
.
HasMaxLength
(
1000
);
b
.
Property
<
DateTime
?>(
"Expiration"
)
.
HasColumnType
(
"datetime2"
);
b
.
Property
<
string
>(
"Type"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(250)"
)
.
HasMaxLength
(
250
);
b
.
Property
<
string
>(
"Value"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(4000)"
)
.
HasMaxLength
(
4000
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"ApiResourceId"
);
b
.
ToTable
(
"ApiSecrets"
);
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.Client"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
int
>(
"AbsoluteRefreshTokenLifetime"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
int
>(
"AccessTokenLifetime"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
int
>(
"AccessTokenType"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
bool
>(
"AllowAccessTokensViaBrowser"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
bool
>(
"AllowOfflineAccess"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
bool
>(
"AllowPlainTextPkce"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
bool
>(
"AllowRememberConsent"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
bool
>(
"AlwaysIncludeUserClaimsInIdToken"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
bool
>(
"AlwaysSendClientClaims"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
int
>(
"AuthorizationCodeLifetime"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
bool
>(
"BackChannelLogoutSessionRequired"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
string
>(
"BackChannelLogoutUri"
)
.
HasColumnType
(
"nvarchar(2000)"
)
.
HasMaxLength
(
2000
);
b
.
Property
<
string
>(
"ClientClaimsPrefix"
)
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
Property
<
string
>(
"ClientId"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
Property
<
string
>(
"ClientName"
)
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
Property
<
string
>(
"ClientUri"
)
.
HasColumnType
(
"nvarchar(2000)"
)
.
HasMaxLength
(
2000
);
b
.
Property
<
int
?>(
"ConsentLifetime"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
DateTime
>(
"Created"
)
.
HasColumnType
(
"datetime2"
);
b
.
Property
<
string
>(
"Description"
)
.
HasColumnType
(
"nvarchar(1000)"
)
.
HasMaxLength
(
1000
);
b
.
Property
<
int
>(
"DeviceCodeLifetime"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
bool
>(
"EnableLocalLogin"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
bool
>(
"Enabled"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
bool
>(
"FrontChannelLogoutSessionRequired"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
string
>(
"FrontChannelLogoutUri"
)
.
HasColumnType
(
"nvarchar(2000)"
)
.
HasMaxLength
(
2000
);
b
.
Property
<
int
>(
"IdentityTokenLifetime"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
bool
>(
"IncludeJwtId"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
DateTime
?>(
"LastAccessed"
)
.
HasColumnType
(
"datetime2"
);
b
.
Property
<
string
>(
"LogoUri"
)
.
HasColumnType
(
"nvarchar(2000)"
)
.
HasMaxLength
(
2000
);
b
.
Property
<
bool
>(
"NonEditable"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
string
>(
"PairWiseSubjectSalt"
)
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
Property
<
string
>(
"ProtocolType"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
Property
<
int
>(
"RefreshTokenExpiration"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
int
>(
"RefreshTokenUsage"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
bool
>(
"RequireClientSecret"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
bool
>(
"RequireConsent"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
bool
>(
"RequirePkce"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
int
>(
"SlidingRefreshTokenLifetime"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
bool
>(
"UpdateAccessTokenClaimsOnRefresh"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
DateTime
?>(
"Updated"
)
.
HasColumnType
(
"datetime2"
);
b
.
Property
<
string
>(
"UserCodeType"
)
.
HasColumnType
(
"nvarchar(100)"
)
.
HasMaxLength
(
100
);
b
.
Property
<
int
?>(
"UserSsoLifetime"
)
.
HasColumnType
(
"int"
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"ClientId"
)
.
IsUnique
();
b
.
ToTable
(
"Clients"
);
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ClientClaim"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
int
>(
"ClientId"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
string
>(
"Type"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(250)"
)
.
HasMaxLength
(
250
);
b
.
Property
<
string
>(
"Value"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(250)"
)
.
HasMaxLength
(
250
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"ClientId"
);
b
.
ToTable
(
"ClientClaims"
);
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ClientCorsOrigin"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
int
>(
"ClientId"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
string
>(
"Origin"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(150)"
)
.
HasMaxLength
(
150
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"ClientId"
);
b
.
ToTable
(
"ClientCorsOrigins"
);
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ClientGrantType"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
int
>(
"ClientId"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
string
>(
"GrantType"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(250)"
)
.
HasMaxLength
(
250
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"ClientId"
);
b
.
ToTable
(
"ClientGrantTypes"
);
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ClientIdPRestriction"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
int
>(
"ClientId"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
string
>(
"Provider"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"ClientId"
);
b
.
ToTable
(
"ClientIdPRestrictions"
);
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ClientPostLogoutRedirectUri"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
int
>(
"ClientId"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
string
>(
"PostLogoutRedirectUri"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(2000)"
)
.
HasMaxLength
(
2000
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"ClientId"
);
b
.
ToTable
(
"ClientPostLogoutRedirectUris"
);
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ClientProperty"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
int
>(
"ClientId"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
string
>(
"Key"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(250)"
)
.
HasMaxLength
(
250
);
b
.
Property
<
string
>(
"Value"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(2000)"
)
.
HasMaxLength
(
2000
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"ClientId"
);
b
.
ToTable
(
"ClientProperties"
);
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ClientRedirectUri"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
int
>(
"ClientId"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
string
>(
"RedirectUri"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(2000)"
)
.
HasMaxLength
(
2000
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"ClientId"
);
b
.
ToTable
(
"ClientRedirectUris"
);
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ClientScope"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
int
>(
"ClientId"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
string
>(
"Scope"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"ClientId"
);
b
.
ToTable
(
"ClientScopes"
);
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ClientSecret"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
int
>(
"ClientId"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
DateTime
>(
"Created"
)
.
HasColumnType
(
"datetime2"
);
b
.
Property
<
string
>(
"Description"
)
.
HasColumnType
(
"nvarchar(2000)"
)
.
HasMaxLength
(
2000
);
b
.
Property
<
DateTime
?>(
"Expiration"
)
.
HasColumnType
(
"datetime2"
);
b
.
Property
<
string
>(
"Type"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(250)"
)
.
HasMaxLength
(
250
);
b
.
Property
<
string
>(
"Value"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(4000)"
)
.
HasMaxLength
(
4000
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"ClientId"
);
b
.
ToTable
(
"ClientSecrets"
);
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.IdentityClaim"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
int
>(
"IdentityResourceId"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
string
>(
"Type"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"IdentityResourceId"
);
b
.
ToTable
(
"IdentityClaims"
);
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.IdentityResource"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
DateTime
>(
"Created"
)
.
HasColumnType
(
"datetime2"
);
b
.
Property
<
string
>(
"Description"
)
.
HasColumnType
(
"nvarchar(1000)"
)
.
HasMaxLength
(
1000
);
b
.
Property
<
string
>(
"DisplayName"
)
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
Property
<
bool
>(
"Emphasize"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
bool
>(
"Enabled"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
string
>(
"Name"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
Property
<
bool
>(
"NonEditable"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
bool
>(
"Required"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
bool
>(
"ShowInDiscoveryDocument"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
DateTime
?>(
"Updated"
)
.
HasColumnType
(
"datetime2"
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"Name"
)
.
IsUnique
();
b
.
ToTable
(
"IdentityResources"
);
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.IdentityResourceProperty"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
int
>(
"IdentityResourceId"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
string
>(
"Key"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(250)"
)
.
HasMaxLength
(
250
);
b
.
Property
<
string
>(
"Value"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(2000)"
)
.
HasMaxLength
(
2000
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"IdentityResourceId"
);
b
.
ToTable
(
"IdentityProperties"
);
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ApiResourceClaim"
,
b
=>
{
b
.
HasOne
(
"IdentityServer4.EntityFramework.Entities.ApiResource"
,
"ApiResource"
)
.
WithMany
(
"UserClaims"
)
.
HasForeignKey
(
"ApiResourceId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ApiResourceProperty"
,
b
=>
{
b
.
HasOne
(
"IdentityServer4.EntityFramework.Entities.ApiResource"
,
"ApiResource"
)
.
WithMany
(
"Properties"
)
.
HasForeignKey
(
"ApiResourceId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ApiScope"
,
b
=>
{
b
.
HasOne
(
"IdentityServer4.EntityFramework.Entities.ApiResource"
,
"ApiResource"
)
.
WithMany
(
"Scopes"
)
.
HasForeignKey
(
"ApiResourceId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ApiScopeClaim"
,
b
=>
{
b
.
HasOne
(
"IdentityServer4.EntityFramework.Entities.ApiScope"
,
"ApiScope"
)
.
WithMany
(
"UserClaims"
)
.
HasForeignKey
(
"ApiScopeId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ApiSecret"
,
b
=>
{
b
.
HasOne
(
"IdentityServer4.EntityFramework.Entities.ApiResource"
,
"ApiResource"
)
.
WithMany
(
"Secrets"
)
.
HasForeignKey
(
"ApiResourceId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ClientClaim"
,
b
=>
{
b
.
HasOne
(
"IdentityServer4.EntityFramework.Entities.Client"
,
"Client"
)
.
WithMany
(
"Claims"
)
.
HasForeignKey
(
"ClientId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ClientCorsOrigin"
,
b
=>
{
b
.
HasOne
(
"IdentityServer4.EntityFramework.Entities.Client"
,
"Client"
)
.
WithMany
(
"AllowedCorsOrigins"
)
.
HasForeignKey
(
"ClientId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ClientGrantType"
,
b
=>
{
b
.
HasOne
(
"IdentityServer4.EntityFramework.Entities.Client"
,
"Client"
)
.
WithMany
(
"AllowedGrantTypes"
)
.
HasForeignKey
(
"ClientId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ClientIdPRestriction"
,
b
=>
{
b
.
HasOne
(
"IdentityServer4.EntityFramework.Entities.Client"
,
"Client"
)
.
WithMany
(
"IdentityProviderRestrictions"
)
.
HasForeignKey
(
"ClientId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ClientPostLogoutRedirectUri"
,
b
=>
{
b
.
HasOne
(
"IdentityServer4.EntityFramework.Entities.Client"
,
"Client"
)
.
WithMany
(
"PostLogoutRedirectUris"
)
.
HasForeignKey
(
"ClientId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ClientProperty"
,
b
=>
{
b
.
HasOne
(
"IdentityServer4.EntityFramework.Entities.Client"
,
"Client"
)
.
WithMany
(
"Properties"
)
.
HasForeignKey
(
"ClientId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ClientRedirectUri"
,
b
=>
{
b
.
HasOne
(
"IdentityServer4.EntityFramework.Entities.Client"
,
"Client"
)
.
WithMany
(
"RedirectUris"
)
.
HasForeignKey
(
"ClientId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ClientScope"
,
b
=>
{
b
.
HasOne
(
"IdentityServer4.EntityFramework.Entities.Client"
,
"Client"
)
.
WithMany
(
"AllowedScopes"
)
.
HasForeignKey
(
"ClientId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ClientSecret"
,
b
=>
{
b
.
HasOne
(
"IdentityServer4.EntityFramework.Entities.Client"
,
"Client"
)
.
WithMany
(
"ClientSecrets"
)
.
HasForeignKey
(
"ClientId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.IdentityClaim"
,
b
=>
{
b
.
HasOne
(
"IdentityServer4.EntityFramework.Entities.IdentityResource"
,
"IdentityResource"
)
.
WithMany
(
"UserClaims"
)
.
HasForeignKey
(
"IdentityResourceId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.IdentityResourceProperty"
,
b
=>
{
b
.
HasOne
(
"IdentityServer4.EntityFramework.Entities.IdentityResource"
,
"IdentityResource"
)
.
WithMany
(
"Properties"
)
.
HasForeignKey
(
"IdentityResourceId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
#pragma warning restore 612, 618
}
}
}
IdentityServer/Data/Migrations/IdentityServer/ConfigurationDb/20200531115008_InitialIdentityServerConfigurationDbMigration.cs
0 → 100644
View file @
b086707d
using
System
;
using
Microsoft.EntityFrameworkCore.Migrations
;
namespace
IdentityServer.Data.Migrations.IdentityServer.ConfigurationDb
{
public
partial
class
InitialIdentityServerConfigurationDbMigration
:
Migration
{
protected
override
void
Up
(
MigrationBuilder
migrationBuilder
)
{
migrationBuilder
.
CreateTable
(
name
:
"ApiResources"
,
columns
:
table
=>
new
{
Id
=
table
.
Column
<
int
>(
nullable
:
false
)
.
Annotation
(
"SqlServer:Identity"
,
"1, 1"
),
Enabled
=
table
.
Column
<
bool
>(
nullable
:
false
),
Name
=
table
.
Column
<
string
>(
maxLength
:
200
,
nullable
:
false
),
DisplayName
=
table
.
Column
<
string
>(
maxLength
:
200
,
nullable
:
true
),
Description
=
table
.
Column
<
string
>(
maxLength
:
1000
,
nullable
:
true
),
Created
=
table
.
Column
<
DateTime
>(
nullable
:
false
),
Updated
=
table
.
Column
<
DateTime
>(
nullable
:
true
),
LastAccessed
=
table
.
Column
<
DateTime
>(
nullable
:
true
),
NonEditable
=
table
.
Column
<
bool
>(
nullable
:
false
)
},
constraints
:
table
=>
{
table
.
PrimaryKey
(
"PK_ApiResources"
,
x
=>
x
.
Id
);
});
migrationBuilder
.
CreateTable
(
name
:
"Clients"
,
columns
:
table
=>
new
{
Id
=
table
.
Column
<
int
>(
nullable
:
false
)
.
Annotation
(
"SqlServer:Identity"
,
"1, 1"
),
Enabled
=
table
.
Column
<
bool
>(
nullable
:
false
),
ClientId
=
table
.
Column
<
string
>(
maxLength
:
200
,
nullable
:
false
),
ProtocolType
=
table
.
Column
<
string
>(
maxLength
:
200
,
nullable
:
false
),
RequireClientSecret
=
table
.
Column
<
bool
>(
nullable
:
false
),
ClientName
=
table
.
Column
<
string
>(
maxLength
:
200
,
nullable
:
true
),
Description
=
table
.
Column
<
string
>(
maxLength
:
1000
,
nullable
:
true
),
ClientUri
=
table
.
Column
<
string
>(
maxLength
:
2000
,
nullable
:
true
),
LogoUri
=
table
.
Column
<
string
>(
maxLength
:
2000
,
nullable
:
true
),
RequireConsent
=
table
.
Column
<
bool
>(
nullable
:
false
),
AllowRememberConsent
=
table
.
Column
<
bool
>(
nullable
:
false
),
AlwaysIncludeUserClaimsInIdToken
=
table
.
Column
<
bool
>(
nullable
:
false
),
RequirePkce
=
table
.
Column
<
bool
>(
nullable
:
false
),
AllowPlainTextPkce
=
table
.
Column
<
bool
>(
nullable
:
false
),
AllowAccessTokensViaBrowser
=
table
.
Column
<
bool
>(
nullable
:
false
),
FrontChannelLogoutUri
=
table
.
Column
<
string
>(
maxLength
:
2000
,
nullable
:
true
),
FrontChannelLogoutSessionRequired
=
table
.
Column
<
bool
>(
nullable
:
false
),
BackChannelLogoutUri
=
table
.
Column
<
string
>(
maxLength
:
2000
,
nullable
:
true
),
BackChannelLogoutSessionRequired
=
table
.
Column
<
bool
>(
nullable
:
false
),
AllowOfflineAccess
=
table
.
Column
<
bool
>(
nullable
:
false
),
IdentityTokenLifetime
=
table
.
Column
<
int
>(
nullable
:
false
),
AccessTokenLifetime
=
table
.
Column
<
int
>(
nullable
:
false
),
AuthorizationCodeLifetime
=
table
.
Column
<
int
>(
nullable
:
false
),
ConsentLifetime
=
table
.
Column
<
int
>(
nullable
:
true
),
AbsoluteRefreshTokenLifetime
=
table
.
Column
<
int
>(
nullable
:
false
),
SlidingRefreshTokenLifetime
=
table
.
Column
<
int
>(
nullable
:
false
),
RefreshTokenUsage
=
table
.
Column
<
int
>(
nullable
:
false
),
UpdateAccessTokenClaimsOnRefresh
=
table
.
Column
<
bool
>(
nullable
:
false
),
RefreshTokenExpiration
=
table
.
Column
<
int
>(
nullable
:
false
),
AccessTokenType
=
table
.
Column
<
int
>(
nullable
:
false
),
EnableLocalLogin
=
table
.
Column
<
bool
>(
nullable
:
false
),
IncludeJwtId
=
table
.
Column
<
bool
>(
nullable
:
false
),
AlwaysSendClientClaims
=
table
.
Column
<
bool
>(
nullable
:
false
),
ClientClaimsPrefix
=
table
.
Column
<
string
>(
maxLength
:
200
,
nullable
:
true
),
PairWiseSubjectSalt
=
table
.
Column
<
string
>(
maxLength
:
200
,
nullable
:
true
),
Created
=
table
.
Column
<
DateTime
>(
nullable
:
false
),
Updated
=
table
.
Column
<
DateTime
>(
nullable
:
true
),
LastAccessed
=
table
.
Column
<
DateTime
>(
nullable
:
true
),
UserSsoLifetime
=
table
.
Column
<
int
>(
nullable
:
true
),
UserCodeType
=
table
.
Column
<
string
>(
maxLength
:
100
,
nullable
:
true
),
DeviceCodeLifetime
=
table
.
Column
<
int
>(
nullable
:
false
),
NonEditable
=
table
.
Column
<
bool
>(
nullable
:
false
)
},
constraints
:
table
=>
{
table
.
PrimaryKey
(
"PK_Clients"
,
x
=>
x
.
Id
);
});
migrationBuilder
.
CreateTable
(
name
:
"IdentityResources"
,
columns
:
table
=>
new
{
Id
=
table
.
Column
<
int
>(
nullable
:
false
)
.
Annotation
(
"SqlServer:Identity"
,
"1, 1"
),
Enabled
=
table
.
Column
<
bool
>(
nullable
:
false
),
Name
=
table
.
Column
<
string
>(
maxLength
:
200
,
nullable
:
false
),
DisplayName
=
table
.
Column
<
string
>(
maxLength
:
200
,
nullable
:
true
),
Description
=
table
.
Column
<
string
>(
maxLength
:
1000
,
nullable
:
true
),
Required
=
table
.
Column
<
bool
>(
nullable
:
false
),
Emphasize
=
table
.
Column
<
bool
>(
nullable
:
false
),
ShowInDiscoveryDocument
=
table
.
Column
<
bool
>(
nullable
:
false
),
Created
=
table
.
Column
<
DateTime
>(
nullable
:
false
),
Updated
=
table
.
Column
<
DateTime
>(
nullable
:
true
),
NonEditable
=
table
.
Column
<
bool
>(
nullable
:
false
)
},
constraints
:
table
=>
{
table
.
PrimaryKey
(
"PK_IdentityResources"
,
x
=>
x
.
Id
);
});
migrationBuilder
.
CreateTable
(
name
:
"ApiClaims"
,
columns
:
table
=>
new
{
Id
=
table
.
Column
<
int
>(
nullable
:
false
)
.
Annotation
(
"SqlServer:Identity"
,
"1, 1"
),
Type
=
table
.
Column
<
string
>(
maxLength
:
200
,
nullable
:
false
),
ApiResourceId
=
table
.
Column
<
int
>(
nullable
:
false
)
},
constraints
:
table
=>
{
table
.
PrimaryKey
(
"PK_ApiClaims"
,
x
=>
x
.
Id
);
table
.
ForeignKey
(
name
:
"FK_ApiClaims_ApiResources_ApiResourceId"
,
column
:
x
=>
x
.
ApiResourceId
,
principalTable
:
"ApiResources"
,
principalColumn
:
"Id"
,
onDelete
:
ReferentialAction
.
Cascade
);
});
migrationBuilder
.
CreateTable
(
name
:
"ApiProperties"
,
columns
:
table
=>
new
{
Id
=
table
.
Column
<
int
>(
nullable
:
false
)
.
Annotation
(
"SqlServer:Identity"
,
"1, 1"
),
Key
=
table
.
Column
<
string
>(
maxLength
:
250
,
nullable
:
false
),
Value
=
table
.
Column
<
string
>(
maxLength
:
2000
,
nullable
:
false
),
ApiResourceId
=
table
.
Column
<
int
>(
nullable
:
false
)
},
constraints
:
table
=>
{
table
.
PrimaryKey
(
"PK_ApiProperties"
,
x
=>
x
.
Id
);
table
.
ForeignKey
(
name
:
"FK_ApiProperties_ApiResources_ApiResourceId"
,
column
:
x
=>
x
.
ApiResourceId
,
principalTable
:
"ApiResources"
,
principalColumn
:
"Id"
,
onDelete
:
ReferentialAction
.
Cascade
);
});
migrationBuilder
.
CreateTable
(
name
:
"ApiScopes"
,
columns
:
table
=>
new
{
Id
=
table
.
Column
<
int
>(
nullable
:
false
)
.
Annotation
(
"SqlServer:Identity"
,
"1, 1"
),
Name
=
table
.
Column
<
string
>(
maxLength
:
200
,
nullable
:
false
),
DisplayName
=
table
.
Column
<
string
>(
maxLength
:
200
,
nullable
:
true
),
Description
=
table
.
Column
<
string
>(
maxLength
:
1000
,
nullable
:
true
),
Required
=
table
.
Column
<
bool
>(
nullable
:
false
),
Emphasize
=
table
.
Column
<
bool
>(
nullable
:
false
),
ShowInDiscoveryDocument
=
table
.
Column
<
bool
>(
nullable
:
false
),
ApiResourceId
=
table
.
Column
<
int
>(
nullable
:
false
)
},
constraints
:
table
=>
{
table
.
PrimaryKey
(
"PK_ApiScopes"
,
x
=>
x
.
Id
);
table
.
ForeignKey
(
name
:
"FK_ApiScopes_ApiResources_ApiResourceId"
,
column
:
x
=>
x
.
ApiResourceId
,
principalTable
:
"ApiResources"
,
principalColumn
:
"Id"
,
onDelete
:
ReferentialAction
.
Cascade
);
});
migrationBuilder
.
CreateTable
(
name
:
"ApiSecrets"
,
columns
:
table
=>
new
{
Id
=
table
.
Column
<
int
>(
nullable
:
false
)
.
Annotation
(
"SqlServer:Identity"
,
"1, 1"
),
Description
=
table
.
Column
<
string
>(
maxLength
:
1000
,
nullable
:
true
),
Value
=
table
.
Column
<
string
>(
maxLength
:
4000
,
nullable
:
false
),
Expiration
=
table
.
Column
<
DateTime
>(
nullable
:
true
),
Type
=
table
.
Column
<
string
>(
maxLength
:
250
,
nullable
:
false
),
Created
=
table
.
Column
<
DateTime
>(
nullable
:
false
),
ApiResourceId
=
table
.
Column
<
int
>(
nullable
:
false
)
},
constraints
:
table
=>
{
table
.
PrimaryKey
(
"PK_ApiSecrets"
,
x
=>
x
.
Id
);
table
.
ForeignKey
(
name
:
"FK_ApiSecrets_ApiResources_ApiResourceId"
,
column
:
x
=>
x
.
ApiResourceId
,
principalTable
:
"ApiResources"
,
principalColumn
:
"Id"
,
onDelete
:
ReferentialAction
.
Cascade
);
});
migrationBuilder
.
CreateTable
(
name
:
"ClientClaims"
,
columns
:
table
=>
new
{
Id
=
table
.
Column
<
int
>(
nullable
:
false
)
.
Annotation
(
"SqlServer:Identity"
,
"1, 1"
),
Type
=
table
.
Column
<
string
>(
maxLength
:
250
,
nullable
:
false
),
Value
=
table
.
Column
<
string
>(
maxLength
:
250
,
nullable
:
false
),
ClientId
=
table
.
Column
<
int
>(
nullable
:
false
)
},
constraints
:
table
=>
{
table
.
PrimaryKey
(
"PK_ClientClaims"
,
x
=>
x
.
Id
);
table
.
ForeignKey
(
name
:
"FK_ClientClaims_Clients_ClientId"
,
column
:
x
=>
x
.
ClientId
,
principalTable
:
"Clients"
,
principalColumn
:
"Id"
,
onDelete
:
ReferentialAction
.
Cascade
);
});
migrationBuilder
.
CreateTable
(
name
:
"ClientCorsOrigins"
,
columns
:
table
=>
new
{
Id
=
table
.
Column
<
int
>(
nullable
:
false
)
.
Annotation
(
"SqlServer:Identity"
,
"1, 1"
),
Origin
=
table
.
Column
<
string
>(
maxLength
:
150
,
nullable
:
false
),
ClientId
=
table
.
Column
<
int
>(
nullable
:
false
)
},
constraints
:
table
=>
{
table
.
PrimaryKey
(
"PK_ClientCorsOrigins"
,
x
=>
x
.
Id
);
table
.
ForeignKey
(
name
:
"FK_ClientCorsOrigins_Clients_ClientId"
,
column
:
x
=>
x
.
ClientId
,
principalTable
:
"Clients"
,
principalColumn
:
"Id"
,
onDelete
:
ReferentialAction
.
Cascade
);
});
migrationBuilder
.
CreateTable
(
name
:
"ClientGrantTypes"
,
columns
:
table
=>
new
{
Id
=
table
.
Column
<
int
>(
nullable
:
false
)
.
Annotation
(
"SqlServer:Identity"
,
"1, 1"
),
GrantType
=
table
.
Column
<
string
>(
maxLength
:
250
,
nullable
:
false
),
ClientId
=
table
.
Column
<
int
>(
nullable
:
false
)
},
constraints
:
table
=>
{
table
.
PrimaryKey
(
"PK_ClientGrantTypes"
,
x
=>
x
.
Id
);
table
.
ForeignKey
(
name
:
"FK_ClientGrantTypes_Clients_ClientId"
,
column
:
x
=>
x
.
ClientId
,
principalTable
:
"Clients"
,
principalColumn
:
"Id"
,
onDelete
:
ReferentialAction
.
Cascade
);
});
migrationBuilder
.
CreateTable
(
name
:
"ClientIdPRestrictions"
,
columns
:
table
=>
new
{
Id
=
table
.
Column
<
int
>(
nullable
:
false
)
.
Annotation
(
"SqlServer:Identity"
,
"1, 1"
),
Provider
=
table
.
Column
<
string
>(
maxLength
:
200
,
nullable
:
false
),
ClientId
=
table
.
Column
<
int
>(
nullable
:
false
)
},
constraints
:
table
=>
{
table
.
PrimaryKey
(
"PK_ClientIdPRestrictions"
,
x
=>
x
.
Id
);
table
.
ForeignKey
(
name
:
"FK_ClientIdPRestrictions_Clients_ClientId"
,
column
:
x
=>
x
.
ClientId
,
principalTable
:
"Clients"
,
principalColumn
:
"Id"
,
onDelete
:
ReferentialAction
.
Cascade
);
});
migrationBuilder
.
CreateTable
(
name
:
"ClientPostLogoutRedirectUris"
,
columns
:
table
=>
new
{
Id
=
table
.
Column
<
int
>(
nullable
:
false
)
.
Annotation
(
"SqlServer:Identity"
,
"1, 1"
),
PostLogoutRedirectUri
=
table
.
Column
<
string
>(
maxLength
:
2000
,
nullable
:
false
),
ClientId
=
table
.
Column
<
int
>(
nullable
:
false
)
},
constraints
:
table
=>
{
table
.
PrimaryKey
(
"PK_ClientPostLogoutRedirectUris"
,
x
=>
x
.
Id
);
table
.
ForeignKey
(
name
:
"FK_ClientPostLogoutRedirectUris_Clients_ClientId"
,
column
:
x
=>
x
.
ClientId
,
principalTable
:
"Clients"
,
principalColumn
:
"Id"
,
onDelete
:
ReferentialAction
.
Cascade
);
});
migrationBuilder
.
CreateTable
(
name
:
"ClientProperties"
,
columns
:
table
=>
new
{
Id
=
table
.
Column
<
int
>(
nullable
:
false
)
.
Annotation
(
"SqlServer:Identity"
,
"1, 1"
),
Key
=
table
.
Column
<
string
>(
maxLength
:
250
,
nullable
:
false
),
Value
=
table
.
Column
<
string
>(
maxLength
:
2000
,
nullable
:
false
),
ClientId
=
table
.
Column
<
int
>(
nullable
:
false
)
},
constraints
:
table
=>
{
table
.
PrimaryKey
(
"PK_ClientProperties"
,
x
=>
x
.
Id
);
table
.
ForeignKey
(
name
:
"FK_ClientProperties_Clients_ClientId"
,
column
:
x
=>
x
.
ClientId
,
principalTable
:
"Clients"
,
principalColumn
:
"Id"
,
onDelete
:
ReferentialAction
.
Cascade
);
});
migrationBuilder
.
CreateTable
(
name
:
"ClientRedirectUris"
,
columns
:
table
=>
new
{
Id
=
table
.
Column
<
int
>(
nullable
:
false
)
.
Annotation
(
"SqlServer:Identity"
,
"1, 1"
),
RedirectUri
=
table
.
Column
<
string
>(
maxLength
:
2000
,
nullable
:
false
),
ClientId
=
table
.
Column
<
int
>(
nullable
:
false
)
},
constraints
:
table
=>
{
table
.
PrimaryKey
(
"PK_ClientRedirectUris"
,
x
=>
x
.
Id
);
table
.
ForeignKey
(
name
:
"FK_ClientRedirectUris_Clients_ClientId"
,
column
:
x
=>
x
.
ClientId
,
principalTable
:
"Clients"
,
principalColumn
:
"Id"
,
onDelete
:
ReferentialAction
.
Cascade
);
});
migrationBuilder
.
CreateTable
(
name
:
"ClientScopes"
,
columns
:
table
=>
new
{
Id
=
table
.
Column
<
int
>(
nullable
:
false
)
.
Annotation
(
"SqlServer:Identity"
,
"1, 1"
),
Scope
=
table
.
Column
<
string
>(
maxLength
:
200
,
nullable
:
false
),
ClientId
=
table
.
Column
<
int
>(
nullable
:
false
)
},
constraints
:
table
=>
{
table
.
PrimaryKey
(
"PK_ClientScopes"
,
x
=>
x
.
Id
);
table
.
ForeignKey
(
name
:
"FK_ClientScopes_Clients_ClientId"
,
column
:
x
=>
x
.
ClientId
,
principalTable
:
"Clients"
,
principalColumn
:
"Id"
,
onDelete
:
ReferentialAction
.
Cascade
);
});
migrationBuilder
.
CreateTable
(
name
:
"ClientSecrets"
,
columns
:
table
=>
new
{
Id
=
table
.
Column
<
int
>(
nullable
:
false
)
.
Annotation
(
"SqlServer:Identity"
,
"1, 1"
),
Description
=
table
.
Column
<
string
>(
maxLength
:
2000
,
nullable
:
true
),
Value
=
table
.
Column
<
string
>(
maxLength
:
4000
,
nullable
:
false
),
Expiration
=
table
.
Column
<
DateTime
>(
nullable
:
true
),
Type
=
table
.
Column
<
string
>(
maxLength
:
250
,
nullable
:
false
),
Created
=
table
.
Column
<
DateTime
>(
nullable
:
false
),
ClientId
=
table
.
Column
<
int
>(
nullable
:
false
)
},
constraints
:
table
=>
{
table
.
PrimaryKey
(
"PK_ClientSecrets"
,
x
=>
x
.
Id
);
table
.
ForeignKey
(
name
:
"FK_ClientSecrets_Clients_ClientId"
,
column
:
x
=>
x
.
ClientId
,
principalTable
:
"Clients"
,
principalColumn
:
"Id"
,
onDelete
:
ReferentialAction
.
Cascade
);
});
migrationBuilder
.
CreateTable
(
name
:
"IdentityClaims"
,
columns
:
table
=>
new
{
Id
=
table
.
Column
<
int
>(
nullable
:
false
)
.
Annotation
(
"SqlServer:Identity"
,
"1, 1"
),
Type
=
table
.
Column
<
string
>(
maxLength
:
200
,
nullable
:
false
),
IdentityResourceId
=
table
.
Column
<
int
>(
nullable
:
false
)
},
constraints
:
table
=>
{
table
.
PrimaryKey
(
"PK_IdentityClaims"
,
x
=>
x
.
Id
);
table
.
ForeignKey
(
name
:
"FK_IdentityClaims_IdentityResources_IdentityResourceId"
,
column
:
x
=>
x
.
IdentityResourceId
,
principalTable
:
"IdentityResources"
,
principalColumn
:
"Id"
,
onDelete
:
ReferentialAction
.
Cascade
);
});
migrationBuilder
.
CreateTable
(
name
:
"IdentityProperties"
,
columns
:
table
=>
new
{
Id
=
table
.
Column
<
int
>(
nullable
:
false
)
.
Annotation
(
"SqlServer:Identity"
,
"1, 1"
),
Key
=
table
.
Column
<
string
>(
maxLength
:
250
,
nullable
:
false
),
Value
=
table
.
Column
<
string
>(
maxLength
:
2000
,
nullable
:
false
),
IdentityResourceId
=
table
.
Column
<
int
>(
nullable
:
false
)
},
constraints
:
table
=>
{
table
.
PrimaryKey
(
"PK_IdentityProperties"
,
x
=>
x
.
Id
);
table
.
ForeignKey
(
name
:
"FK_IdentityProperties_IdentityResources_IdentityResourceId"
,
column
:
x
=>
x
.
IdentityResourceId
,
principalTable
:
"IdentityResources"
,
principalColumn
:
"Id"
,
onDelete
:
ReferentialAction
.
Cascade
);
});
migrationBuilder
.
CreateTable
(
name
:
"ApiScopeClaims"
,
columns
:
table
=>
new
{
Id
=
table
.
Column
<
int
>(
nullable
:
false
)
.
Annotation
(
"SqlServer:Identity"
,
"1, 1"
),
Type
=
table
.
Column
<
string
>(
maxLength
:
200
,
nullable
:
false
),
ApiScopeId
=
table
.
Column
<
int
>(
nullable
:
false
)
},
constraints
:
table
=>
{
table
.
PrimaryKey
(
"PK_ApiScopeClaims"
,
x
=>
x
.
Id
);
table
.
ForeignKey
(
name
:
"FK_ApiScopeClaims_ApiScopes_ApiScopeId"
,
column
:
x
=>
x
.
ApiScopeId
,
principalTable
:
"ApiScopes"
,
principalColumn
:
"Id"
,
onDelete
:
ReferentialAction
.
Cascade
);
});
migrationBuilder
.
CreateIndex
(
name
:
"IX_ApiClaims_ApiResourceId"
,
table
:
"ApiClaims"
,
column
:
"ApiResourceId"
);
migrationBuilder
.
CreateIndex
(
name
:
"IX_ApiProperties_ApiResourceId"
,
table
:
"ApiProperties"
,
column
:
"ApiResourceId"
);
migrationBuilder
.
CreateIndex
(
name
:
"IX_ApiResources_Name"
,
table
:
"ApiResources"
,
column
:
"Name"
,
unique
:
true
);
migrationBuilder
.
CreateIndex
(
name
:
"IX_ApiScopeClaims_ApiScopeId"
,
table
:
"ApiScopeClaims"
,
column
:
"ApiScopeId"
);
migrationBuilder
.
CreateIndex
(
name
:
"IX_ApiScopes_ApiResourceId"
,
table
:
"ApiScopes"
,
column
:
"ApiResourceId"
);
migrationBuilder
.
CreateIndex
(
name
:
"IX_ApiScopes_Name"
,
table
:
"ApiScopes"
,
column
:
"Name"
,
unique
:
true
);
migrationBuilder
.
CreateIndex
(
name
:
"IX_ApiSecrets_ApiResourceId"
,
table
:
"ApiSecrets"
,
column
:
"ApiResourceId"
);
migrationBuilder
.
CreateIndex
(
name
:
"IX_ClientClaims_ClientId"
,
table
:
"ClientClaims"
,
column
:
"ClientId"
);
migrationBuilder
.
CreateIndex
(
name
:
"IX_ClientCorsOrigins_ClientId"
,
table
:
"ClientCorsOrigins"
,
column
:
"ClientId"
);
migrationBuilder
.
CreateIndex
(
name
:
"IX_ClientGrantTypes_ClientId"
,
table
:
"ClientGrantTypes"
,
column
:
"ClientId"
);
migrationBuilder
.
CreateIndex
(
name
:
"IX_ClientIdPRestrictions_ClientId"
,
table
:
"ClientIdPRestrictions"
,
column
:
"ClientId"
);
migrationBuilder
.
CreateIndex
(
name
:
"IX_ClientPostLogoutRedirectUris_ClientId"
,
table
:
"ClientPostLogoutRedirectUris"
,
column
:
"ClientId"
);
migrationBuilder
.
CreateIndex
(
name
:
"IX_ClientProperties_ClientId"
,
table
:
"ClientProperties"
,
column
:
"ClientId"
);
migrationBuilder
.
CreateIndex
(
name
:
"IX_ClientRedirectUris_ClientId"
,
table
:
"ClientRedirectUris"
,
column
:
"ClientId"
);
migrationBuilder
.
CreateIndex
(
name
:
"IX_Clients_ClientId"
,
table
:
"Clients"
,
column
:
"ClientId"
,
unique
:
true
);
migrationBuilder
.
CreateIndex
(
name
:
"IX_ClientScopes_ClientId"
,
table
:
"ClientScopes"
,
column
:
"ClientId"
);
migrationBuilder
.
CreateIndex
(
name
:
"IX_ClientSecrets_ClientId"
,
table
:
"ClientSecrets"
,
column
:
"ClientId"
);
migrationBuilder
.
CreateIndex
(
name
:
"IX_IdentityClaims_IdentityResourceId"
,
table
:
"IdentityClaims"
,
column
:
"IdentityResourceId"
);
migrationBuilder
.
CreateIndex
(
name
:
"IX_IdentityProperties_IdentityResourceId"
,
table
:
"IdentityProperties"
,
column
:
"IdentityResourceId"
);
migrationBuilder
.
CreateIndex
(
name
:
"IX_IdentityResources_Name"
,
table
:
"IdentityResources"
,
column
:
"Name"
,
unique
:
true
);
}
protected
override
void
Down
(
MigrationBuilder
migrationBuilder
)
{
migrationBuilder
.
DropTable
(
name
:
"ApiClaims"
);
migrationBuilder
.
DropTable
(
name
:
"ApiProperties"
);
migrationBuilder
.
DropTable
(
name
:
"ApiScopeClaims"
);
migrationBuilder
.
DropTable
(
name
:
"ApiSecrets"
);
migrationBuilder
.
DropTable
(
name
:
"ClientClaims"
);
migrationBuilder
.
DropTable
(
name
:
"ClientCorsOrigins"
);
migrationBuilder
.
DropTable
(
name
:
"ClientGrantTypes"
);
migrationBuilder
.
DropTable
(
name
:
"ClientIdPRestrictions"
);
migrationBuilder
.
DropTable
(
name
:
"ClientPostLogoutRedirectUris"
);
migrationBuilder
.
DropTable
(
name
:
"ClientProperties"
);
migrationBuilder
.
DropTable
(
name
:
"ClientRedirectUris"
);
migrationBuilder
.
DropTable
(
name
:
"ClientScopes"
);
migrationBuilder
.
DropTable
(
name
:
"ClientSecrets"
);
migrationBuilder
.
DropTable
(
name
:
"IdentityClaims"
);
migrationBuilder
.
DropTable
(
name
:
"IdentityProperties"
);
migrationBuilder
.
DropTable
(
name
:
"ApiScopes"
);
migrationBuilder
.
DropTable
(
name
:
"Clients"
);
migrationBuilder
.
DropTable
(
name
:
"IdentityResources"
);
migrationBuilder
.
DropTable
(
name
:
"ApiResources"
);
}
}
}
IdentityServer/Data/Migrations/IdentityServer/ConfigurationDb/ConfigurationDbContextModelSnapshot.cs
0 → 100644
View file @
b086707d
// <auto-generated />
using
System
;
using
IdentityServer4.EntityFramework.DbContexts
;
using
Microsoft.EntityFrameworkCore
;
using
Microsoft.EntityFrameworkCore.Infrastructure
;
using
Microsoft.EntityFrameworkCore.Metadata
;
using
Microsoft.EntityFrameworkCore.Storage.ValueConversion
;
namespace
IdentityServer.Data.Migrations.IdentityServer.ConfigurationDb
{
[
DbContext
(
typeof
(
ConfigurationDbContext
))]
partial
class
ConfigurationDbContextModelSnapshot
:
ModelSnapshot
{
protected
override
void
BuildModel
(
ModelBuilder
modelBuilder
)
{
#pragma warning disable 612, 618
modelBuilder
.
HasAnnotation
(
"ProductVersion"
,
"3.1.4"
)
.
HasAnnotation
(
"Relational:MaxIdentifierLength"
,
128
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ApiResource"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
DateTime
>(
"Created"
)
.
HasColumnType
(
"datetime2"
);
b
.
Property
<
string
>(
"Description"
)
.
HasColumnType
(
"nvarchar(1000)"
)
.
HasMaxLength
(
1000
);
b
.
Property
<
string
>(
"DisplayName"
)
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
Property
<
bool
>(
"Enabled"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
DateTime
?>(
"LastAccessed"
)
.
HasColumnType
(
"datetime2"
);
b
.
Property
<
string
>(
"Name"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
Property
<
bool
>(
"NonEditable"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
DateTime
?>(
"Updated"
)
.
HasColumnType
(
"datetime2"
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"Name"
)
.
IsUnique
();
b
.
ToTable
(
"ApiResources"
);
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ApiResourceClaim"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
int
>(
"ApiResourceId"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
string
>(
"Type"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"ApiResourceId"
);
b
.
ToTable
(
"ApiClaims"
);
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ApiResourceProperty"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
int
>(
"ApiResourceId"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
string
>(
"Key"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(250)"
)
.
HasMaxLength
(
250
);
b
.
Property
<
string
>(
"Value"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(2000)"
)
.
HasMaxLength
(
2000
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"ApiResourceId"
);
b
.
ToTable
(
"ApiProperties"
);
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ApiScope"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
int
>(
"ApiResourceId"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
string
>(
"Description"
)
.
HasColumnType
(
"nvarchar(1000)"
)
.
HasMaxLength
(
1000
);
b
.
Property
<
string
>(
"DisplayName"
)
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
Property
<
bool
>(
"Emphasize"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
string
>(
"Name"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
Property
<
bool
>(
"Required"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
bool
>(
"ShowInDiscoveryDocument"
)
.
HasColumnType
(
"bit"
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"ApiResourceId"
);
b
.
HasIndex
(
"Name"
)
.
IsUnique
();
b
.
ToTable
(
"ApiScopes"
);
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ApiScopeClaim"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
int
>(
"ApiScopeId"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
string
>(
"Type"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"ApiScopeId"
);
b
.
ToTable
(
"ApiScopeClaims"
);
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ApiSecret"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
int
>(
"ApiResourceId"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
DateTime
>(
"Created"
)
.
HasColumnType
(
"datetime2"
);
b
.
Property
<
string
>(
"Description"
)
.
HasColumnType
(
"nvarchar(1000)"
)
.
HasMaxLength
(
1000
);
b
.
Property
<
DateTime
?>(
"Expiration"
)
.
HasColumnType
(
"datetime2"
);
b
.
Property
<
string
>(
"Type"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(250)"
)
.
HasMaxLength
(
250
);
b
.
Property
<
string
>(
"Value"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(4000)"
)
.
HasMaxLength
(
4000
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"ApiResourceId"
);
b
.
ToTable
(
"ApiSecrets"
);
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.Client"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
int
>(
"AbsoluteRefreshTokenLifetime"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
int
>(
"AccessTokenLifetime"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
int
>(
"AccessTokenType"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
bool
>(
"AllowAccessTokensViaBrowser"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
bool
>(
"AllowOfflineAccess"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
bool
>(
"AllowPlainTextPkce"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
bool
>(
"AllowRememberConsent"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
bool
>(
"AlwaysIncludeUserClaimsInIdToken"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
bool
>(
"AlwaysSendClientClaims"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
int
>(
"AuthorizationCodeLifetime"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
bool
>(
"BackChannelLogoutSessionRequired"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
string
>(
"BackChannelLogoutUri"
)
.
HasColumnType
(
"nvarchar(2000)"
)
.
HasMaxLength
(
2000
);
b
.
Property
<
string
>(
"ClientClaimsPrefix"
)
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
Property
<
string
>(
"ClientId"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
Property
<
string
>(
"ClientName"
)
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
Property
<
string
>(
"ClientUri"
)
.
HasColumnType
(
"nvarchar(2000)"
)
.
HasMaxLength
(
2000
);
b
.
Property
<
int
?>(
"ConsentLifetime"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
DateTime
>(
"Created"
)
.
HasColumnType
(
"datetime2"
);
b
.
Property
<
string
>(
"Description"
)
.
HasColumnType
(
"nvarchar(1000)"
)
.
HasMaxLength
(
1000
);
b
.
Property
<
int
>(
"DeviceCodeLifetime"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
bool
>(
"EnableLocalLogin"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
bool
>(
"Enabled"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
bool
>(
"FrontChannelLogoutSessionRequired"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
string
>(
"FrontChannelLogoutUri"
)
.
HasColumnType
(
"nvarchar(2000)"
)
.
HasMaxLength
(
2000
);
b
.
Property
<
int
>(
"IdentityTokenLifetime"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
bool
>(
"IncludeJwtId"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
DateTime
?>(
"LastAccessed"
)
.
HasColumnType
(
"datetime2"
);
b
.
Property
<
string
>(
"LogoUri"
)
.
HasColumnType
(
"nvarchar(2000)"
)
.
HasMaxLength
(
2000
);
b
.
Property
<
bool
>(
"NonEditable"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
string
>(
"PairWiseSubjectSalt"
)
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
Property
<
string
>(
"ProtocolType"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
Property
<
int
>(
"RefreshTokenExpiration"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
int
>(
"RefreshTokenUsage"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
bool
>(
"RequireClientSecret"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
bool
>(
"RequireConsent"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
bool
>(
"RequirePkce"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
int
>(
"SlidingRefreshTokenLifetime"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
bool
>(
"UpdateAccessTokenClaimsOnRefresh"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
DateTime
?>(
"Updated"
)
.
HasColumnType
(
"datetime2"
);
b
.
Property
<
string
>(
"UserCodeType"
)
.
HasColumnType
(
"nvarchar(100)"
)
.
HasMaxLength
(
100
);
b
.
Property
<
int
?>(
"UserSsoLifetime"
)
.
HasColumnType
(
"int"
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"ClientId"
)
.
IsUnique
();
b
.
ToTable
(
"Clients"
);
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ClientClaim"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
int
>(
"ClientId"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
string
>(
"Type"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(250)"
)
.
HasMaxLength
(
250
);
b
.
Property
<
string
>(
"Value"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(250)"
)
.
HasMaxLength
(
250
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"ClientId"
);
b
.
ToTable
(
"ClientClaims"
);
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ClientCorsOrigin"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
int
>(
"ClientId"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
string
>(
"Origin"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(150)"
)
.
HasMaxLength
(
150
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"ClientId"
);
b
.
ToTable
(
"ClientCorsOrigins"
);
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ClientGrantType"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
int
>(
"ClientId"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
string
>(
"GrantType"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(250)"
)
.
HasMaxLength
(
250
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"ClientId"
);
b
.
ToTable
(
"ClientGrantTypes"
);
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ClientIdPRestriction"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
int
>(
"ClientId"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
string
>(
"Provider"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"ClientId"
);
b
.
ToTable
(
"ClientIdPRestrictions"
);
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ClientPostLogoutRedirectUri"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
int
>(
"ClientId"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
string
>(
"PostLogoutRedirectUri"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(2000)"
)
.
HasMaxLength
(
2000
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"ClientId"
);
b
.
ToTable
(
"ClientPostLogoutRedirectUris"
);
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ClientProperty"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
int
>(
"ClientId"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
string
>(
"Key"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(250)"
)
.
HasMaxLength
(
250
);
b
.
Property
<
string
>(
"Value"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(2000)"
)
.
HasMaxLength
(
2000
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"ClientId"
);
b
.
ToTable
(
"ClientProperties"
);
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ClientRedirectUri"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
int
>(
"ClientId"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
string
>(
"RedirectUri"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(2000)"
)
.
HasMaxLength
(
2000
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"ClientId"
);
b
.
ToTable
(
"ClientRedirectUris"
);
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ClientScope"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
int
>(
"ClientId"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
string
>(
"Scope"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"ClientId"
);
b
.
ToTable
(
"ClientScopes"
);
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ClientSecret"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
int
>(
"ClientId"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
DateTime
>(
"Created"
)
.
HasColumnType
(
"datetime2"
);
b
.
Property
<
string
>(
"Description"
)
.
HasColumnType
(
"nvarchar(2000)"
)
.
HasMaxLength
(
2000
);
b
.
Property
<
DateTime
?>(
"Expiration"
)
.
HasColumnType
(
"datetime2"
);
b
.
Property
<
string
>(
"Type"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(250)"
)
.
HasMaxLength
(
250
);
b
.
Property
<
string
>(
"Value"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(4000)"
)
.
HasMaxLength
(
4000
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"ClientId"
);
b
.
ToTable
(
"ClientSecrets"
);
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.IdentityClaim"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
int
>(
"IdentityResourceId"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
string
>(
"Type"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"IdentityResourceId"
);
b
.
ToTable
(
"IdentityClaims"
);
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.IdentityResource"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
DateTime
>(
"Created"
)
.
HasColumnType
(
"datetime2"
);
b
.
Property
<
string
>(
"Description"
)
.
HasColumnType
(
"nvarchar(1000)"
)
.
HasMaxLength
(
1000
);
b
.
Property
<
string
>(
"DisplayName"
)
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
Property
<
bool
>(
"Emphasize"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
bool
>(
"Enabled"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
string
>(
"Name"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
Property
<
bool
>(
"NonEditable"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
bool
>(
"Required"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
bool
>(
"ShowInDiscoveryDocument"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
DateTime
?>(
"Updated"
)
.
HasColumnType
(
"datetime2"
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"Name"
)
.
IsUnique
();
b
.
ToTable
(
"IdentityResources"
);
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.IdentityResourceProperty"
,
b
=>
{
b
.
Property
<
int
>(
"Id"
)
.
ValueGeneratedOnAdd
()
.
HasColumnType
(
"int"
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
b
.
Property
<
int
>(
"IdentityResourceId"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
string
>(
"Key"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(250)"
)
.
HasMaxLength
(
250
);
b
.
Property
<
string
>(
"Value"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(2000)"
)
.
HasMaxLength
(
2000
);
b
.
HasKey
(
"Id"
);
b
.
HasIndex
(
"IdentityResourceId"
);
b
.
ToTable
(
"IdentityProperties"
);
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ApiResourceClaim"
,
b
=>
{
b
.
HasOne
(
"IdentityServer4.EntityFramework.Entities.ApiResource"
,
"ApiResource"
)
.
WithMany
(
"UserClaims"
)
.
HasForeignKey
(
"ApiResourceId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ApiResourceProperty"
,
b
=>
{
b
.
HasOne
(
"IdentityServer4.EntityFramework.Entities.ApiResource"
,
"ApiResource"
)
.
WithMany
(
"Properties"
)
.
HasForeignKey
(
"ApiResourceId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ApiScope"
,
b
=>
{
b
.
HasOne
(
"IdentityServer4.EntityFramework.Entities.ApiResource"
,
"ApiResource"
)
.
WithMany
(
"Scopes"
)
.
HasForeignKey
(
"ApiResourceId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ApiScopeClaim"
,
b
=>
{
b
.
HasOne
(
"IdentityServer4.EntityFramework.Entities.ApiScope"
,
"ApiScope"
)
.
WithMany
(
"UserClaims"
)
.
HasForeignKey
(
"ApiScopeId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ApiSecret"
,
b
=>
{
b
.
HasOne
(
"IdentityServer4.EntityFramework.Entities.ApiResource"
,
"ApiResource"
)
.
WithMany
(
"Secrets"
)
.
HasForeignKey
(
"ApiResourceId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ClientClaim"
,
b
=>
{
b
.
HasOne
(
"IdentityServer4.EntityFramework.Entities.Client"
,
"Client"
)
.
WithMany
(
"Claims"
)
.
HasForeignKey
(
"ClientId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ClientCorsOrigin"
,
b
=>
{
b
.
HasOne
(
"IdentityServer4.EntityFramework.Entities.Client"
,
"Client"
)
.
WithMany
(
"AllowedCorsOrigins"
)
.
HasForeignKey
(
"ClientId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ClientGrantType"
,
b
=>
{
b
.
HasOne
(
"IdentityServer4.EntityFramework.Entities.Client"
,
"Client"
)
.
WithMany
(
"AllowedGrantTypes"
)
.
HasForeignKey
(
"ClientId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ClientIdPRestriction"
,
b
=>
{
b
.
HasOne
(
"IdentityServer4.EntityFramework.Entities.Client"
,
"Client"
)
.
WithMany
(
"IdentityProviderRestrictions"
)
.
HasForeignKey
(
"ClientId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ClientPostLogoutRedirectUri"
,
b
=>
{
b
.
HasOne
(
"IdentityServer4.EntityFramework.Entities.Client"
,
"Client"
)
.
WithMany
(
"PostLogoutRedirectUris"
)
.
HasForeignKey
(
"ClientId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ClientProperty"
,
b
=>
{
b
.
HasOne
(
"IdentityServer4.EntityFramework.Entities.Client"
,
"Client"
)
.
WithMany
(
"Properties"
)
.
HasForeignKey
(
"ClientId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ClientRedirectUri"
,
b
=>
{
b
.
HasOne
(
"IdentityServer4.EntityFramework.Entities.Client"
,
"Client"
)
.
WithMany
(
"RedirectUris"
)
.
HasForeignKey
(
"ClientId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ClientScope"
,
b
=>
{
b
.
HasOne
(
"IdentityServer4.EntityFramework.Entities.Client"
,
"Client"
)
.
WithMany
(
"AllowedScopes"
)
.
HasForeignKey
(
"ClientId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.ClientSecret"
,
b
=>
{
b
.
HasOne
(
"IdentityServer4.EntityFramework.Entities.Client"
,
"Client"
)
.
WithMany
(
"ClientSecrets"
)
.
HasForeignKey
(
"ClientId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.IdentityClaim"
,
b
=>
{
b
.
HasOne
(
"IdentityServer4.EntityFramework.Entities.IdentityResource"
,
"IdentityResource"
)
.
WithMany
(
"UserClaims"
)
.
HasForeignKey
(
"IdentityResourceId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.IdentityResourceProperty"
,
b
=>
{
b
.
HasOne
(
"IdentityServer4.EntityFramework.Entities.IdentityResource"
,
"IdentityResource"
)
.
WithMany
(
"Properties"
)
.
HasForeignKey
(
"IdentityResourceId"
)
.
OnDelete
(
DeleteBehavior
.
Cascade
)
.
IsRequired
();
});
#pragma warning restore 612, 618
}
}
}
IdentityServer/Data/Migrations/IdentityServer/PersistedGrantDb/20200531114247_InitialIdentityServerPersistedGrantDbMigration.Designer.cs
0 → 100644
View file @
b086707d
// <auto-generated />
using
System
;
using
IdentityServer4.EntityFramework.DbContexts
;
using
Microsoft.EntityFrameworkCore
;
using
Microsoft.EntityFrameworkCore.Infrastructure
;
using
Microsoft.EntityFrameworkCore.Metadata
;
using
Microsoft.EntityFrameworkCore.Migrations
;
using
Microsoft.EntityFrameworkCore.Storage.ValueConversion
;
namespace
IdentityServer.Data.Migrations.IdentityServer.PersistedGrantDb
{
[
DbContext
(
typeof
(
PersistedGrantDbContext
))]
[
Migration
(
"20200531114247_InitialIdentityServerPersistedGrantDbMigration"
)]
partial
class
InitialIdentityServerPersistedGrantDbMigration
{
protected
override
void
BuildTargetModel
(
ModelBuilder
modelBuilder
)
{
#pragma warning disable 612, 618
modelBuilder
.
HasAnnotation
(
"ProductVersion"
,
"3.1.4"
)
.
HasAnnotation
(
"Relational:MaxIdentifierLength"
,
128
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.DeviceFlowCodes"
,
b
=>
{
b
.
Property
<
string
>(
"UserCode"
)
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
Property
<
string
>(
"ClientId"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
Property
<
DateTime
>(
"CreationTime"
)
.
HasColumnType
(
"datetime2"
);
b
.
Property
<
string
>(
"Data"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(max)"
)
.
HasMaxLength
(
50000
);
b
.
Property
<
string
>(
"DeviceCode"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
Property
<
DateTime
?>(
"Expiration"
)
.
IsRequired
()
.
HasColumnType
(
"datetime2"
);
b
.
Property
<
string
>(
"SubjectId"
)
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
HasKey
(
"UserCode"
);
b
.
HasIndex
(
"DeviceCode"
)
.
IsUnique
();
b
.
HasIndex
(
"Expiration"
);
b
.
ToTable
(
"DeviceCodes"
);
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.PersistedGrant"
,
b
=>
{
b
.
Property
<
string
>(
"Key"
)
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
Property
<
string
>(
"ClientId"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
Property
<
DateTime
>(
"CreationTime"
)
.
HasColumnType
(
"datetime2"
);
b
.
Property
<
string
>(
"Data"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(max)"
)
.
HasMaxLength
(
50000
);
b
.
Property
<
DateTime
?>(
"Expiration"
)
.
HasColumnType
(
"datetime2"
);
b
.
Property
<
string
>(
"SubjectId"
)
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
Property
<
string
>(
"Type"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(50)"
)
.
HasMaxLength
(
50
);
b
.
HasKey
(
"Key"
);
b
.
HasIndex
(
"Expiration"
);
b
.
HasIndex
(
"SubjectId"
,
"ClientId"
,
"Type"
);
b
.
ToTable
(
"PersistedGrants"
);
});
#pragma warning restore 612, 618
}
}
}
IdentityServer/Data/Migrations/IdentityServer/PersistedGrantDb/20200531114247_InitialIdentityServerPersistedGrantDbMigration.cs
0 → 100644
View file @
b086707d
using
System
;
using
Microsoft.EntityFrameworkCore.Migrations
;
namespace
IdentityServer.Data.Migrations.IdentityServer.PersistedGrantDb
{
public
partial
class
InitialIdentityServerPersistedGrantDbMigration
:
Migration
{
protected
override
void
Up
(
MigrationBuilder
migrationBuilder
)
{
migrationBuilder
.
CreateTable
(
name
:
"DeviceCodes"
,
columns
:
table
=>
new
{
UserCode
=
table
.
Column
<
string
>(
maxLength
:
200
,
nullable
:
false
),
DeviceCode
=
table
.
Column
<
string
>(
maxLength
:
200
,
nullable
:
false
),
SubjectId
=
table
.
Column
<
string
>(
maxLength
:
200
,
nullable
:
true
),
ClientId
=
table
.
Column
<
string
>(
maxLength
:
200
,
nullable
:
false
),
CreationTime
=
table
.
Column
<
DateTime
>(
nullable
:
false
),
Expiration
=
table
.
Column
<
DateTime
>(
nullable
:
false
),
Data
=
table
.
Column
<
string
>(
maxLength
:
50000
,
nullable
:
false
)
},
constraints
:
table
=>
{
table
.
PrimaryKey
(
"PK_DeviceCodes"
,
x
=>
x
.
UserCode
);
});
migrationBuilder
.
CreateTable
(
name
:
"PersistedGrants"
,
columns
:
table
=>
new
{
Key
=
table
.
Column
<
string
>(
maxLength
:
200
,
nullable
:
false
),
Type
=
table
.
Column
<
string
>(
maxLength
:
50
,
nullable
:
false
),
SubjectId
=
table
.
Column
<
string
>(
maxLength
:
200
,
nullable
:
true
),
ClientId
=
table
.
Column
<
string
>(
maxLength
:
200
,
nullable
:
false
),
CreationTime
=
table
.
Column
<
DateTime
>(
nullable
:
false
),
Expiration
=
table
.
Column
<
DateTime
>(
nullable
:
true
),
Data
=
table
.
Column
<
string
>(
maxLength
:
50000
,
nullable
:
false
)
},
constraints
:
table
=>
{
table
.
PrimaryKey
(
"PK_PersistedGrants"
,
x
=>
x
.
Key
);
});
migrationBuilder
.
CreateIndex
(
name
:
"IX_DeviceCodes_DeviceCode"
,
table
:
"DeviceCodes"
,
column
:
"DeviceCode"
,
unique
:
true
);
migrationBuilder
.
CreateIndex
(
name
:
"IX_DeviceCodes_Expiration"
,
table
:
"DeviceCodes"
,
column
:
"Expiration"
);
migrationBuilder
.
CreateIndex
(
name
:
"IX_PersistedGrants_Expiration"
,
table
:
"PersistedGrants"
,
column
:
"Expiration"
);
migrationBuilder
.
CreateIndex
(
name
:
"IX_PersistedGrants_SubjectId_ClientId_Type"
,
table
:
"PersistedGrants"
,
columns
:
new
[]
{
"SubjectId"
,
"ClientId"
,
"Type"
});
}
protected
override
void
Down
(
MigrationBuilder
migrationBuilder
)
{
migrationBuilder
.
DropTable
(
name
:
"DeviceCodes"
);
migrationBuilder
.
DropTable
(
name
:
"PersistedGrants"
);
}
}
}
IdentityServer/Data/Migrations/IdentityServer/PersistedGrantDb/PersistedGrantDbContextModelSnapshot.cs
0 → 100644
View file @
b086707d
// <auto-generated />
using
System
;
using
IdentityServer4.EntityFramework.DbContexts
;
using
Microsoft.EntityFrameworkCore
;
using
Microsoft.EntityFrameworkCore.Infrastructure
;
using
Microsoft.EntityFrameworkCore.Metadata
;
using
Microsoft.EntityFrameworkCore.Storage.ValueConversion
;
namespace
IdentityServer.Data.Migrations.IdentityServer.PersistedGrantDb
{
[
DbContext
(
typeof
(
PersistedGrantDbContext
))]
partial
class
PersistedGrantDbContextModelSnapshot
:
ModelSnapshot
{
protected
override
void
BuildModel
(
ModelBuilder
modelBuilder
)
{
#pragma warning disable 612, 618
modelBuilder
.
HasAnnotation
(
"ProductVersion"
,
"3.1.4"
)
.
HasAnnotation
(
"Relational:MaxIdentifierLength"
,
128
)
.
HasAnnotation
(
"SqlServer:ValueGenerationStrategy"
,
SqlServerValueGenerationStrategy
.
IdentityColumn
);
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.DeviceFlowCodes"
,
b
=>
{
b
.
Property
<
string
>(
"UserCode"
)
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
Property
<
string
>(
"ClientId"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
Property
<
DateTime
>(
"CreationTime"
)
.
HasColumnType
(
"datetime2"
);
b
.
Property
<
string
>(
"Data"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(max)"
)
.
HasMaxLength
(
50000
);
b
.
Property
<
string
>(
"DeviceCode"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
Property
<
DateTime
?>(
"Expiration"
)
.
IsRequired
()
.
HasColumnType
(
"datetime2"
);
b
.
Property
<
string
>(
"SubjectId"
)
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
HasKey
(
"UserCode"
);
b
.
HasIndex
(
"DeviceCode"
)
.
IsUnique
();
b
.
HasIndex
(
"Expiration"
);
b
.
ToTable
(
"DeviceCodes"
);
});
modelBuilder
.
Entity
(
"IdentityServer4.EntityFramework.Entities.PersistedGrant"
,
b
=>
{
b
.
Property
<
string
>(
"Key"
)
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
Property
<
string
>(
"ClientId"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
Property
<
DateTime
>(
"CreationTime"
)
.
HasColumnType
(
"datetime2"
);
b
.
Property
<
string
>(
"Data"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(max)"
)
.
HasMaxLength
(
50000
);
b
.
Property
<
DateTime
?>(
"Expiration"
)
.
HasColumnType
(
"datetime2"
);
b
.
Property
<
string
>(
"SubjectId"
)
.
HasColumnType
(
"nvarchar(200)"
)
.
HasMaxLength
(
200
);
b
.
Property
<
string
>(
"Type"
)
.
IsRequired
()
.
HasColumnType
(
"nvarchar(50)"
)
.
HasMaxLength
(
50
);
b
.
HasKey
(
"Key"
);
b
.
HasIndex
(
"Expiration"
);
b
.
HasIndex
(
"SubjectId"
,
"ClientId"
,
"Type"
);
b
.
ToTable
(
"PersistedGrants"
);
});
#pragma warning restore 612, 618
}
}
}
IdentityServer/IdentityServer.csproj
View file @
b086707d
<Project Sdk="Microsoft.NET.Sdk.Web">
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<TargetFramework>netcoreapp3.1</TargetFramework>
...
@@ -7,12 +7,19 @@
...
@@ -7,12 +7,19 @@
<ItemGroup>
<ItemGroup>
<PackageReference Include="IdentityServer4" Version="3.1.3" />
<PackageReference Include="IdentityServer4" Version="3.1.3" />
<PackageReference Include="IdentityServer4.AspNetIdentity" Version="3.1.3" />
<PackageReference Include="IdentityServer4.AspNetIdentity" Version="3.1.3" />
<PackageReference Include="IdentityServer4.EntityFramework" Version="3.1.3" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.Facebook" Version="3.1.4" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.Facebook" Version="3.1.4" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="3.1.4" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="3.1.4" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.4" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.4" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.1.4">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="3.1.4" />
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="3.1.4" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.4" />
<PackageReference Include="Microsoft.Extensions.Identity.Core" Version="3.1.4" />
<PackageReference Include="Microsoft.Extensions.Identity.Core" Version="3.1.4" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.1.3" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.1.3" />
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" />
</ItemGroup>
</ItemGroup>
</Project>
</Project>
IdentityServer/Program.cs
View file @
b086707d
...
@@ -3,8 +3,11 @@ using System.Collections.Generic;
...
@@ -3,8 +3,11 @@ using System.Collections.Generic;
using
System.Linq
;
using
System.Linq
;
using
System.Security.Claims
;
using
System.Security.Claims
;
using
System.Threading.Tasks
;
using
System.Threading.Tasks
;
using
IdentityServer4.EntityFramework.DbContexts
;
using
IdentityServer4.EntityFramework.Mappers
;
using
Microsoft.AspNetCore.Hosting
;
using
Microsoft.AspNetCore.Hosting
;
using
Microsoft.AspNetCore.Identity
;
using
Microsoft.AspNetCore.Identity
;
using
Microsoft.EntityFrameworkCore
;
using
Microsoft.Extensions.Configuration
;
using
Microsoft.Extensions.Configuration
;
using
Microsoft.Extensions.DependencyInjection
;
using
Microsoft.Extensions.DependencyInjection
;
using
Microsoft.Extensions.Hosting
;
using
Microsoft.Extensions.Hosting
;
...
@@ -28,6 +31,37 @@ namespace IdentityServer
...
@@ -28,6 +31,37 @@ namespace IdentityServer
userManager
.
AddClaimAsync
(
user
,
userManager
.
AddClaimAsync
(
user
,
new
Claim
(
"rc.api.garndma"
,
"big.api.cookie"
))
new
Claim
(
"rc.api.garndma"
,
"big.api.cookie"
))
.
GetAwaiter
().
GetResult
();
.
GetAwaiter
().
GetResult
();
scope
.
ServiceProvider
.
GetRequiredService
<
PersistedGrantDbContext
>().
Database
.
Migrate
();
var
context
=
scope
.
ServiceProvider
.
GetRequiredService
<
ConfigurationDbContext
>();
context
.
Database
.
Migrate
();
if
(!
context
.
Clients
.
Any
())
{
foreach
(
var
client
in
Configuration
.
GetClients
())
{
context
.
Clients
.
Add
(
client
.
ToEntity
());
}
context
.
SaveChanges
();
}
if
(!
context
.
IdentityResources
.
Any
())
{
foreach
(
var
resource
in
Configuration
.
GetIdentityResources
())
{
context
.
IdentityResources
.
Add
(
resource
.
ToEntity
());
}
context
.
SaveChanges
();
}
if
(!
context
.
ApiResources
.
Any
())
{
foreach
(
var
resource
in
Configuration
.
GetApis
())
{
context
.
ApiResources
.
Add
(
resource
.
ToEntity
());
}
context
.
SaveChanges
();
}
}
}
host
.
Run
();
host
.
Run
();
}
}
...
...
IdentityServer/Startup.cs
View file @
b086707d
...
@@ -11,12 +11,22 @@ namespace IdentityServer
...
@@ -11,12 +11,22 @@ namespace IdentityServer
{
{
public
class
Startup
public
class
Startup
{
{
private
readonly
IConfiguration
_config
;
//private readonly IWebHostEnvironment _env;
public
Startup
(
IConfiguration
config
/*, IWebHostEnvironment env*/
)
{
_config
=
config
;
//_env = env;
}
public
void
ConfigureServices
(
IServiceCollection
services
)
public
void
ConfigureServices
(
IServiceCollection
services
)
{
{
var
connectionString
=
_config
.
GetConnectionString
(
"DefaultConnection"
);
services
.
AddDbContext
<
AppDbContext
>(
config
=>
services
.
AddDbContext
<
AppDbContext
>(
config
=>
{
{
config
.
UseInMemoryDatabase
(
"Memory"
);
config
.
UseSqlServer
(
connectionString
);
//config.UseInMemoryDatabase("Memory");
});
});
// AddIdentity registers the services
// AddIdentity registers the services
...
@@ -36,12 +46,24 @@ namespace IdentityServer
...
@@ -36,12 +46,24 @@ namespace IdentityServer
config
.
Cookie
.
Name
=
"IdentityServer.Cookie"
;
config
.
Cookie
.
Name
=
"IdentityServer.Cookie"
;
config
.
LoginPath
=
"/Auth/Login"
;
config
.
LoginPath
=
"/Auth/Login"
;
});
});
var
assembly
=
typeof
(
Startup
).
Assembly
.
GetName
().
Name
;
services
.
AddIdentityServer
()
services
.
AddIdentityServer
()
.
AddAspNetIdentity
<
IdentityUser
>()
.
AddAspNetIdentity
<
IdentityUser
>()
.
AddInMemoryApiResources
(
Configuration
.
GetApis
())
.
AddConfigurationStore
(
options
=>
.
AddInMemoryIdentityResources
(
Configuration
.
GetIdentityResources
())
{
.
AddInMemoryClients
(
Configuration
.
GetClients
())
options
.
ConfigureDbContext
=
b
=>
b
.
UseSqlServer
(
connectionString
,
.
AddDeveloperSigningCredential
();
sql
=>
sql
.
MigrationsAssembly
(
assembly
));
})
.
AddOperationalStore
(
options
=>
{
options
.
ConfigureDbContext
=
b
=>
b
.
UseSqlServer
(
connectionString
,
sql
=>
sql
.
MigrationsAssembly
(
assembly
));
});
//.AddInMemoryApiResources(Configuration.GetApis())
//.AddInMemoryIdentityResources(Configuration.GetIdentityResources())
//.AddInMemoryClients(Configuration.GetClients())
//.AddDeveloperSigningCredential();
//services.AddAuthentication()
//services.AddAuthentication()
// .AddFacebook(config => {
// .AddFacebook(config => {
...
...
IdentityServer/Views/Auth/Login.cshtml
View file @
b086707d
...
@@ -27,7 +27,7 @@
...
@@ -27,7 +27,7 @@
<button type="submit">Sign In</button>
<button type="submit">Sign In</button>
</div>
</div>
</form>
</form>
<div>
@*
<div>
<a asp-controller="Auth" asp-action="Register"
<a asp-controller="Auth" asp-action="Register"
asp-route-returnUrl="@Model.ReturnUrl">Register</a>
asp-route-returnUrl="@Model.ReturnUrl">Register</a>
</div>
</div>*@
\ No newline at end of file
\ No newline at end of file
IdentityServer/appsettings.json
View file @
b086707d
{
{
"ConnectionStrings"
:
{
"DefaultConnection"
:
"Data Source=(localdb)
\\
MSSQLLocalDB;Initial Catalog=IdentityServer4Tutorial;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"
},
"Logging"
:
{
"Logging"
:
{
"LogLevel"
:
{
"LogLevel"
:
{
"Default"
:
"Information"
,
"Default"
:
"Information"
,
...
...
IdentityServer/db-scripts.txt
0 → 100644
View file @
b086707d
dotnet ef migrations add InitialIdentityServerPersistedGrantDbMigration -c PersistedGrantDbContext -o Data/Migrations/IdentityServer/PersistedGrantDb
dotnet ef migrations add InitialIdentityServerConfigurationDbMigration -c ConfigurationDbContext -o Data/Migrations/IdentityServer/ConfigurationDb
dotnet ef migrations add <name> -c AppDbContext -o Data/Migrations/AppMigrations
dotnet ef database update -c AppDbContext
dotnet ef database update -c PersistedGrantDbContext
dotnet ef database update -c ConfigurationDbContext
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment