2017-01-07 5 views
0

информация
Я хочу, чтобы «обновить» мой ASP.NET проекта веб-страницы в проект ASP.NET MVC, просто начать сначала, это всего лишь несколько страниц и это было бы хорошо для обучения.миграции пользователей ASP.NET Web Pages таблицы в MVC 6

Этот вопрос
Данный проект имеет несколько пользователей для аутентификации ASP.NET сделал несколько таблиц в моей базе данных:

  • Роли
  • профили
  • Пользователи
  • . ..

Но когда я использую проект MVC Я вижу, что делает различные таблицы для проверки подлинности:

  • AspNetUserLogins
  • AspNetUserRoles
  • AspNetUser
  • ...

Вопрос
Как перенести моих пользователей или как сообщить ASP.net использовать старые таблицы?

ответ

0

Я наткнулся на это site благодаря this blog

и отредактирован, чтобы соответствовать моим потребностям:

/****** Object: Table [dbo].[AspNetRoles] Script Date: 11/14/2013 1:56:03 PM ******/ 
SET ANSI_NULLS ON 
GO 

SET QUOTED_IDENTIFIER ON 
GO 

IF OBJECT_ID('dbo.AspNetUserRoles', 'U') IS NOT NULL 
    DROP TABLE [dbo].[AspNetUserRoles] 
GO 
IF OBJECT_ID('dbo.AspNetUserLogins', 'U') IS NOT NULL 
    DROP TABLE [dbo].[AspNetUserLogins] 
GO 
IF OBJECT_ID('dbo.AspNetUserClaims', 'U') IS NOT NULL 
    DROP TABLE [dbo].[AspNetUserClaims] 
GO 
IF OBJECT_ID('dbo.AspNetRoles', 'U') IS NOT NULL 
    DROP TABLE [dbo].[AspNetRoles] 
GO 
IF OBJECT_ID('dbo.AspNetUsers', 'U') IS NOT NULL 
    DROP TABLE [dbo].[AspNetUsers] 
GO 

CREATE TABLE [dbo].[AspNetUsers] (
    [AccessFailedCount] INT   NOT NULL, 
    [Email]    NVARCHAR (MAX) NULL, 
    [EmailConfirmed]  BIT   DEFAULT ((0)) NULL, 
    [Id]     NVARCHAR (128) NOT NULL, 
    [LockoutEnabled]  BIT   DEFAULT ((0)) NULL, 
    [LockoutEndDateUtc]   DATETIME2 (7) NULL, 
    [PasswordHash]   NVARCHAR (MAX) NULL, 
    [PhoneNumber]   NVARCHAR (MAX) NULL, 
    [PhoneNumberConfirmed] BIT   DEFAULT ((0)) NULL, 
    [SecurityStamp]  NVARCHAR (MAX) NULL, 
    [TwoFactorEnabled]  BIT   DEFAULT ((0)) NULL, 
    [UserName]    NVARCHAR (MAX) NULL, 
    [CreateDate]        DATETIME  NULL, 
    [ConfirmationToken]      NVARCHAR (128) NULL, 
    [IsConfirmed]        BIT   DEFAULT ((0)) NULL, 
    [LastPasswordFailureDate]     DATETIME  NULL, 
    [PasswordFailuresSinceLastSuccess]  INT   DEFAULT ((0)) NULL, 
    [PasswordChangedDate]      DATETIME  NULL, 
    [PasswordVerificationToken]    NVARCHAR (128) NULL, 
    [PasswordVerificationTokenExpirationDate] DATETIME  NULL, 
    CONSTRAINT [PK_dbo.AspNetUsers] PRIMARY KEY CLUSTERED ([Id] ASC) 
); 
GO 
CREATE TABLE [dbo].[AspNetRoles] (
    [Id] NVARCHAR (128) NOT NULL, 
    [Name] NVARCHAR (MAX) NOT NULL, 
    CONSTRAINT [PK_dbo.AspNetRoles] PRIMARY KEY CLUSTERED ([Id] ASC) 
); 
GO 
CREATE TABLE [dbo].[AspNetUserRoles] (
    [UserId] NVARCHAR (128) NOT NULL, 
    [RoleId] NVARCHAR (128) NOT NULL, 
    CONSTRAINT [PK_dbo.AspNetUserRoles] PRIMARY KEY CLUSTERED ([UserId] ASC, [RoleId] ASC), 
    CONSTRAINT [FK_dbo.AspNetUserRoles_dbo.AspNetRoles_RoleId] FOREIGN KEY ([RoleId]) REFERENCES [dbo].[AspNetRoles] ([Id]) ON DELETE CASCADE, 
    CONSTRAINT [FK_dbo.AspNetUserRoles_dbo.AspNetUsers_UserId] FOREIGN KEY ([UserId]) REFERENCES [dbo].[AspNetUsers] ([Id]) ON DELETE CASCADE 
); 
GO 
CREATE NONCLUSTERED INDEX [IX_RoleId] 
    ON [dbo].[AspNetUserRoles]([RoleId] ASC); 
GO 
CREATE NONCLUSTERED INDEX [IX_UserId] 
    ON [dbo].[AspNetUserRoles]([UserId] ASC); 
GO 
CREATE TABLE [dbo].[AspNetUserLogins] (
    [UserId]  NVARCHAR (128) NOT NULL, 
    [LoginProvider] NVARCHAR (128) NOT NULL, 
    [ProviderKey] NVARCHAR (128) NOT NULL, 
    CONSTRAINT [PK_dbo.AspNetUserLogins] PRIMARY KEY CLUSTERED ([UserId] ASC, [LoginProvider] ASC, [ProviderKey] ASC), 
    CONSTRAINT [FK_dbo.AspNetUserLogins_dbo.AspNetUsers_UserId] FOREIGN KEY ([UserId]) REFERENCES [dbo].[AspNetUsers] ([Id]) ON DELETE CASCADE 
); 
GO 
CREATE NONCLUSTERED INDEX [IX_UserId] 
    ON [dbo].[AspNetUserLogins]([UserId] ASC); 
GO 
CREATE TABLE [dbo].[AspNetUserClaims] (
    [Id]   INT   IDENTITY (1, 1) NOT NULL, 
    [ClaimType] NVARCHAR (MAX) NULL, 
    [ClaimValue] NVARCHAR (MAX) NULL, 
    [UserId] NVARCHAR (128) NOT NULL, 
    CONSTRAINT [PK_dbo.AspNetUserClaims] PRIMARY KEY CLUSTERED ([Id] ASC), 
    CONSTRAINT [FK_dbo.AspNetUserClaims_dbo.AspNetUsers_User_Id] FOREIGN KEY ([UserId]) REFERENCES [dbo].[AspNetUsers] ([Id]) ON DELETE CASCADE 
); 
GO 
CREATE NONCLUSTERED INDEX [IX_User_Id] 
    ON [dbo].[AspNetUserClaims]([UserId] ASC); 
GO 

INSERT INTO AspNetUsers(Id, UserName, PasswordHash, SecurityStamp, 
CreateDate, ConfirmationToken, IsConfirmed, LastPasswordFailureDate, PasswordFailuresSinceLastSuccess, 
PasswordChangedDate, PasswordVerificationToken, PasswordVerificationTokenExpirationDate,AccessFailedCount,LockoutEndDateUtc) 
SELECT Users.UserId, Users.UserName, Memberships.Password, 
Memberships.PasswordSalt, CreateDate, 
null, 1, '1/1/1977', 0, 
'1/1/2017', null, '1/1/2100',0,'1/1/1977' 
FROM Users 
LEFT OUTER JOIN Memberships ON Users.UserId = Memberships.UserId 
GO 

INSERT INTO AspNetRoles(Id, Name) 
SELECT RoleId, RoleName 
FROM Roles 
GO 

INSERT INTO AspNetUserRoles(UserId, RoleId) 
SELECT UserId, RoleId 
FROM UsersInRoles 
GO 

--INSERT INTO AspNetUserLogins(UserId, LoginProvider, ProviderKey) 
--SELECT UserId, Provider, ProviderUserId 
--FROM Memberships 
--GO 
1

Привет вы можете начать с базы данных первого подхода в MVC-Core но немного отличается от того, что вы видели до сих пор, позвольте мне объяснить шаги для добавления базы данных:

  • Установка Entity Framework:

Run Install-Package Microsoft.EntityFrameworkCore.SqlServer

чтобы включить обратный инжиниринг из существующей базы данных нам нужно установить несколько других пакетов тоже.

  1. Run Install-Package Microsoft.EntityFrameworkCore.Tools –Pre
  2. Run Install-Package Microsoft.EntityFrameworkCore.Design
  3. Run Install-Package Microsoft.EntityFrameworkCore.SqlServer.Design

Теперь перепроектируете модель:

  • Выполните следующую команду создать модель из существующих d atabase. Если вы получили сообщение об ошибке: «Scaffold-DbContext» не распознается как имя командлета, то закрыть и снова открыть Visual Studio.

Scaffold-DbContext "Server=(localdb)\mssqllocaldb;Database=DataBaseName;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

обратные процесс инженера созданных классы сущностей и производный контекст на основе схемы существующей базы данных. Классы сущностей - это простые объекты C#, которые представляют данные, которые вы будете запрашивать и сохранять. И теперь вы можете создать класс DbContext и начать использовать свою базу данных, пока вы выдаете информацию о базе данных, и теперь я предлагаю вам прочитать о Identity In Asp.NET Core.

Смежные вопросы