Readdy Write

Hinzufügen eines Microsoft Identity Frameworks zu einer bestehenden Datenbank

16.02.2021 (👁25944)


 

Wenn man eine bestehende Asp.Net Core Anwendung besitzt und eine gesichertes User Verwaltungssystem einbinden möchte,

dann kann man eine Asp.Net Core ->Angular / React Anwendung mit Authentication / Identity erstellen.

Danach muss man nur noch die Datenbank per Update-Database an die bestehende Datenbank einbinden.

 

Das Identity Framework erstellt ein komplettes User Login/Logout Register System für bestehende Anwendungen.

Die User Seiten sind natürlich verwaltbar.

Wichtig ist: auf der Serverseite sind keine Passwörter oder private Daten frei zugänglich auch nicht für Systemadministratoren.

 

Die bestehende Datenbank muss man in der Datei appsettings.json einstellen

Hier die lokale Datenbank zur Website.

  "ConnectionStrings": {

    "DefaultConnection": "Server=.\\SQLEXPRESS;Database=codedocu_de;Trusted_Connection=True;MultipleActiveResultSets=true"

 

Im SQL Server Connectionstring

   //"Data" "Source=DESKTOP-F634M99\\SQLEXPRESS;Initial",

    //"Catalog=codedocu_de;Integrated" "Security=True;Connect",

    //"Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"

 

Dann startet man die Integration aus dem ASP.Net Core / Angular oder React Projekt

Indem man in der Package Manager Console eingibt:

Update-database

 

Fertig.. dadurch wird in die angebundene Datenbank das Identity Framework installiert

 

 

Folgende Tabellen werden per SQL Skript angelegt:

 

Identity Tabellen AspNetUser**

In der Datenbank findet man die neuen Tabellen als dbo.AspNet* Tabellen

 

1428ca0b..

raimund.popp@code...de

RAIMUND...DE

Raimund...de

RAIMUND...DE

True

AQAAAAEAACcQA..

..

b….

NULL

False

False

NULL

True

0

NULL

NULL

NULL

NULL

NULL

NULL

NULL

NULL

NULL

NULL

NULL

NULL

NULL

NULL

NULL

 

CREATE TABLE [dbo].[AspNetUsers] (

    [Id]                   NVARCHAR (450)     NOT NULL,

    [UserName]             NVARCHAR (256)     NULL,

    [NormalizedUserName]   NVARCHAR (256)     NULL,

    [Email]                NVARCHAR (256)     NULL,

    [NormalizedEmail]      NVARCHAR (256)     NULL,

    [EmailConfirmed]       BIT                NOT NULL,

    [PasswordHash]         NVARCHAR (MAX)     NULL,

    [SecurityStamp]        NVARCHAR (MAX)     NULL,

    [ConcurrencyStamp]     NVARCHAR (MAX)     NULL,

    [PhoneNumber]          NVARCHAR (MAX)     NULL,

    [PhoneNumberConfirmed] BIT                NOT NULL,

    [TwoFactorEnabled]     BIT                NOT NULL,

    [LockoutEnd]           DATETIMEOFFSET (7) NULL,

    [LockoutEnabled]       BIT                NOT NULL,

    [AccessFailedCount]    INT                NOT NULL,

    CONSTRAINT [PK_AspNetUsers] PRIMARY KEY CLUSTERED ([Id] ASC)

);

GO

CREATE NONCLUSTERED INDEX [EmailIndex]

    ON [dbo].[AspNetUsers]([NormalizedEmail] ASC);

GO

CREATE UNIQUE NONCLUSTERED INDEX [UserNameIndex]

    ON [dbo].[AspNetUsers]([NormalizedUserName] ASC) WHERE ([NormalizedUserName] IS NOT NULL);

 

 

AspNetUserRoles

CREATE TABLE [dbo].[AspNetUserRoles] (

    [UserId] NVARCHAR (450) NOT NULL,

    [RoleId] NVARCHAR (450) NOT NULL,

    CONSTRAINT [PK_AspNetUserRoles] PRIMARY KEY CLUSTERED ([UserId] ASC, [RoleId] ASC),

    CONSTRAINT [FK_AspNetUserRoles_AspNetRoles_RoleId] FOREIGN KEY ([RoleId]) REFERENCES [dbo].[AspNetRoles] ([Id]) ON DELETE CASCADE,

    CONSTRAINT [FK_AspNetUserRoles_AspNetUsers_UserId] FOREIGN KEY ([UserId]) REFERENCES [dbo].[AspNetUsers] ([Id]) ON DELETE CASCADE

);

GO

CREATE NONCLUSTERED INDEX [IX_AspNetUserRoles_RoleId]

    ON [dbo].[AspNetUserRoles]([RoleId] ASC);

 

 

AspNetUserLogins

CREATE TABLE [dbo].[AspNetUserLogins] (

    [LoginProvider]       NVARCHAR (128) NOT NULL,

    [ProviderKey]         NVARCHAR (128) NOT NULL,

    [ProviderDisplayName] NVARCHAR (MAX) NULL,

    [UserId]              NVARCHAR (450) NOT NULL,

    CONSTRAINT [PK_AspNetUserLogins] PRIMARY KEY CLUSTERED ([LoginProvider] ASC, [ProviderKey] ASC),

    CONSTRAINT [FK_AspNetUserLogins_AspNetUsers_UserId] FOREIGN KEY ([UserId]) REFERENCES [dbo].[AspNetUsers] ([Id]) ON DELETE CASCADE

);

GO

CREATE NONCLUSTERED INDEX [IX_AspNetUserLogins_UserId]

    ON [dbo].[AspNetUserLogins]([UserId] ASC);

 

 

 

[AspNetRoleClaims]

CREATE TABLE [dbo].[AspNetRoleClaims] (

    [Id]         INT            IDENTITY (1, 1) NOT NULL,

    [RoleId]     NVARCHAR (450) NOT NULL,

    [ClaimType]  NVARCHAR (MAX) NULL,

    [ClaimValue] NVARCHAR (MAX) NULL,

    CONSTRAINT [PK_AspNetRoleClaims] PRIMARY KEY CLUSTERED ([Id] ASC),

    CONSTRAINT [FK_AspNetRoleClaims_AspNetRoles_RoleId] FOREIGN KEY ([RoleId]) REFERENCES [dbo].[AspNetRoles] ([Id]) ON DELETE CASCADE

);

GO

CREATE NONCLUSTERED INDEX [IX_AspNetRoleClaims_RoleId]

    ON [dbo].[AspNetRoleClaims]([RoleId] ASC);

 

 

AspNetRoles

CREATE TABLE [dbo].[AspNetRoles] (

    [Id]               NVARCHAR (450) NOT NULL,

    [Name]             NVARCHAR (256) NULL,

    [NormalizedName]   NVARCHAR (256) NULL,

    [ConcurrencyStamp] NVARCHAR (MAX) NULL,

    CONSTRAINT [PK_AspNetRoles] PRIMARY KEY CLUSTERED ([Id] ASC)

);

GO

CREATE UNIQUE NONCLUSTERED INDEX [RoleNameIndex]

    ON [dbo].[AspNetRoles]([NormalizedName] ASC) WHERE ([NormalizedName] IS NOT NULL);

 

 

 

 

AspNetUserClaims

CREATE TABLE [dbo].[AspNetUserClaims] (

    [Id]         INT            IDENTITY (1, 1) NOT NULL,

    [UserId]     NVARCHAR (450) NOT NULL,

    [ClaimType]  NVARCHAR (MAX) NULL,

    [ClaimValue] NVARCHAR (MAX) NULL,

    CONSTRAINT [PK_AspNetUserClaims] PRIMARY KEY CLUSTERED ([Id] ASC),

    CONSTRAINT [FK_AspNetUserClaims_AspNetUsers_UserId] FOREIGN KEY ([UserId]) REFERENCES [dbo].[AspNetUsers] ([Id]) ON DELETE CASCADE

);

GO

CREATE NONCLUSTERED INDEX [IX_AspNetUserClaims_UserId]

    ON [dbo].[AspNetUserClaims]([UserId] ASC);

 

 

 

AspNetUserTokens

 

 

 

CREATE TABLE [dbo].[AspNetUserTokens] (

    [UserId]        NVARCHAR (450) NOT NULL,

    [LoginProvider] NVARCHAR (128) NOT NULL,

    [Name]          NVARCHAR (128) NOT NULL,

    [Value]         NVARCHAR (MAX) NULL,

    CONSTRAINT [PK_AspNetUserTokens] PRIMARY KEY CLUSTERED ([UserId] ASC, [LoginProvider] ASC, [Name] ASC),

    CONSTRAINT [FK_AspNetUserTokens_AspNetUsers_UserId] FOREIGN KEY ([UserId]) REFERENCES [dbo].[AspNetUsers] ([Id]) ON DELETE CASCADE

);

 


0,00 €