2014-09-14 3 views
1

Я новичок в ASP.net MVC5 и Identity после использования WebForms и поставщика членства в течение почти одного года.MVC5 ASP.net Identity 2.0 пользовательское управление и развертывание с localDB на сервер IIS 8

Я просто создал простое приложение MVC5 с Identity 2.0. Пользователь admin может входить в систему и загружать новые документы и добавлять новые ссылки. Я отключил регистрацию пользователя (после регистрации первого пользователя-администратора), поскольку мне нужно будет вручную создать администраторов.

Я развернул проект на сервере IIS 8, и он отлично работает, я экспортировал таблицы Identity asp.net из моего localDB с помощью SQL Management Studio и импортировал их в ту же базу данных SQL, что и проект, Строка соединения web.config, которая используется локально, указывая на файл mdf в App_Data, чтобы указать на базу данных SQL, где я импортировал таблицы идентификаторов. К сожалению, эта попытка не сработала, поскольку использование одних и тех же учетных данных для входа приводит к сбою входа.

Первый вопрос: Был ли это лучший подход к интеграции идентификационных таблиц в мою базу данных проектов? Если нет, что еще мне делать?

Второй вопрос: Когда я использовал поставщик членства, я управлял пользователями из инструментов IIS Users и ролей. Теперь я не знаю о каких-либо системах для управления пользователями и ролями. Как я могу создать новых пользователей без использования регистрационной формы? Как я могу управлять этими пользователями и ролями?

Большое спасибо заранее.

ответ

1

Ответ на первый вопрос

Этот вопрос, сначала вы использовали код первый подход, который по умолчанию при создании регистрации первого пользователя с правами администратора, который будет автоматически создает все необходимые таблицы в LocalDB в папке App_Data. Затем EntityFramework, который является вашим ORM для asp.net Identity framework, будет поддерживать отслеживание миграции базы данных для вашего localDB.

После того как вы изменили соединение с базой данных, вам необходимо использовать первую миграцию базы данных для обновления кода и базы данных. (Если вы не изменили имена таблиц)

Используйте следующие ссылки, чтобы получить представление о миграции, и вы можете использовать консоль диспетчера пакетов для этого, используя команду «Обновить базу данных».

http://msdn.microsoft.com/en-gb/data/jj591621.aspx http://www.dotnet-tricks.com/Tutorial/entityframework/R54K181213-Understanding-Entity-Framework-Code-First-Migrations.html

Второй вопрос

Существует не Microsoft из коробки решения для управления пользователем для идентичности Framework. Но вы можете использовать пакет Thinktecture IdentityManager nuget для этого, как описано в следующих ссылках.

http://brockallen.com/2014/04/09/introducing-thinktecture-identitymanager/ http://www.hanselman.com/blog/ThinktectureIdentityManagerAsAReplacementForTheASPNETWebSiteAdministrationTool.aspx

Позвольте мне знать, если у вас есть какие-либо дополнительные вопросы.

Надеюсь, что это поможет,

0

Я просмотрел следующую ссылку о Migrating exiting Website from Sql Membership to Asp.net Identity, что я думаю, может быть полезно для вас.

В этом посте пунктов что:

криптографический алгоритм, используемый в членство SQL отличается от одного в новой системе идентичности. Для повторного использования старых паролей нам необходимо выборочно расшифровывать пароли, когда старые пользователи регистрируются с использованием алгоритма членства SQL , используя алгоритм криптографии в Identity для новых пользователей.

Таким образом, это должна быть основная проблема при входе в систему, которая у вас есть. Несмотря на то, что в статье говорится, что в идентификаторе Asp.net вы можете определить свой собственный пользовательский пароль, можете использовать алгоритм членства для входа в систему с помощью Asp.Net Identity, просто создав пользовательский хешер пароля, который реализует IPasswordHasher. Затем, создав экземпляр UserManager, назначьте PasswordHasher новый пользовательский класс хэширования паролей.

UserManager<ApplicationUser> UserManager = new UserManager<ApplicationUser>(store); 
UserManager.PasswordHasher = new CustomPasswordHasher(); // IPasswordHasher 

Для второго вопроса управление пользователями и ролями в Asp.net Identity не имеет секрета. Существует таблица пользователей (AspnetUsers), таблица ролей (AspnetRoles) и таблица соединений, которая относится к обоим, AspnetUserRoles. Таким образом, для переноса ваших пользователей из старой базы данных вы можете сделать это, вставив пользователей, роли и их отношение в эти таблицы с помощью SQL-скриптов.

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

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