2014-10-16 2 views
0

Я только что начал с MVC после работы над Web Forms в течение 4 лет. Я просмотрел несколько видеороликов, объясняющих архитектуру/основы, и теперь я могу воспроизвести несколько модулей моего старого проекта с помощью MVC5 с использованием EF6.ASP.NET MVC 5 Identity 2.0 & OWIN Two Factor Authentication с использованием существующей базы данных

У меня есть база данных SQL Server, содержащая такие таблицы, как альбомы/исполнители/заголовки/обзоры и его таблица пользователей. Я смог работать с первым набором таблиц, используя EF6, просто отлично, включая вставки/удаления. В предыдущем проекте я выполнил аутентификацию пользовательских веб-форм с использованием BCrypt, сохранив данные в таблице User, а затем выполнив проверки и установив файл cookie auth.

Таблица пользователей имеет такие данные, как UserId, PWHash, EMail, FirstName, LastName. UserId - это FK в таблице отзывов и несколько других.

Реализация Я надеюсь на это, как показано ниже:

1. Login screen accepts credentials and validates with existing User table. 
    2. If valid, move to the 2FA screen(eMail/SMS). 
    3. If valid, then allow access to application. 

Большинство учебников говорят, как расширить атрибуты, такие как FirstName/LastName, но не говорят, как использовать существующую БД. Я планирую использовать bcrypt/scrypt для шифрования конфиденциальных данных.

Я прошел через MVC 5 & ASP.NET Identity - Implementation Confusion но идентификатор не все ответы на мои вопросы

мне просто нужно отправную точку, как подключить существующий DB вместо использования DbContext предоставляется по умолчанию

ответ

0

Если ваше приложение использует EF Code First, то вы можете использовать существующую схему и подключить свой собственный пользователь. Посмотрите на следующий пример, который показывает, как вы можете повторно использовать существующую пользовательскую информацию и подключить ее к Identity http://aspnet.codeplex.com/SourceControl/latest#Samples/Identity/CustomMembershipSample/Readme.txt

Вам не нужно наследовать от IdentityDbContext. Вы можете напрямую использовать DbContext. В этом случае вам придется переопределить onModelCreating, чтобы создать таблицы Users/Roles и все сопоставления между таблицами.

1

Лично я считаю, что документация очень расстраивает, когда вы уходите от обычного, так что вы можете оказаться в мире боли.

Самый простой способ будет полностью взять под свой контроль процесса аутентификации самостоятельно, используя FormsAuthentication

Однако, если вы хотите использовать много из вне кода коробки, который был доставлен с MVC5 а против пользовательской базы данных или схемы, вероятно, вам, вероятно, придется реализовать свой собственный UserStore и, возможно, UserManager.

Проблема в том, что есть много возможностей для реализации, поэтому вам будет весело.

Прочтите эту статью по номеру Custom Storage Prodivers, чтобы получить начало.

УДАЧИ

+0

Спасибо. Будет выглядеть и обновлять вас, если я где-нибудь застрял. – Dev