Подтвердить что ты не робот

Использование первого подхода Asp.Net Identity DataBase

Мне нужно интегрировать последнюю версию MVC Asp.Net с существующей базой данных, которая имеет дополнительный столбец String Address в таблицу dbo.AspNetUsers

Мне нужно создать экземпляр ApplicationUser, у которого есть свойство Address.

Любая идея, как это сделать?

4b9b3361

Ответ 1

Возможное решение, которое работает для меня, в основном я могу интегрировать профили пользователей Asp.Net Identity с существующей базой данных.

Получение таблиц Asp.Identity:

  • Создайте проект MVC с аутентификацией Индивидуальная учетная запись пользователя
  • Откройте базу данных, указанную в разделе DefaultConnection в Web.config. Он будет называться (aspnet- [timestamp] или что-то в этом роде.)
  • Script таблицы базы данных с помощью SQL Server Management Studio (присоединить базу данных для mdc).

Альтернативно используйте что-то вроде http://identity.codeplex.com/

Интеграция с существующим db:

  • Вставьте скриптовые таблицы в существующую базу данных в SQL Server Management Studio.
  • Настроить и добавить отношения к ApplicationUser (при необходимости).
  • Создать новый веб-проект > MVC > Первый проект DB > Импортировать DB с EF....
  • В IdentityModels.cs измените базу ApplicationDbContext: base ( "DefaltConnection" ), чтобы использовать проект DbContext.

Теперь у вас есть таблицы Asp.Identity в вашем db с моделью ER в вашем приложении.

Профиль Asp.Identity Добавление новых свойств:

  • Включить код платформы Entity Framework Первые миграции базы данных, только в VS идут в консоли диспетчера пакетов Tools,
  • Выполните команду "Enable-Migrations"; После того как мы включили миграцию базы данных, мы можем продолжить и добавить новые свойства для нашего UserProfile

  • Чтобы добавить новые свойства, измените файл IdentityModels.cs, например:


public class ApplicationUser : IdentityUser
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string EmailID { get; set; }
}

Добавить новую миграцию

  • После добавления свойств верните консоль диспетчера пакетов и выполните следующую команду.

    Add-Migration "YouMigrationName"

Эта команда создаст файл базы данных script, теперь выполнит следующую команду для запуска этого файла script к базе данных.

Update-Database

Теперь все новые свойства превратятся в поля таблицы в одной таблице базы данных.

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

Ответ 3

Мне удалось интегрировать существующую базу данных через Database First с Identity Framework 2.0. Я написал на нем сообщение в блоге здесь, в котором используется ASP.NET MVC 5, Identity Framework 2.0 и шаблон SPA от Visual Studio 2013 Update 2 RTM.

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

Ответ 4

public class MyUser: IdentityUser   {       public virtual MyUserInfo MyUserInfo {get; задавать; }   }

public class MyUserInfo{ 
    public int Id { get; set; } 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
} 
public class MyDbContext : IdentityDbContext<MyUserInfo> //Edited to MyUserInfo
{ 
    public MyDbContext() 
        : base("DefaultConnection") 
    { 
    } 
    public System.Data.Entity.DbSet<MyUserInfo> MyUserInfo { get; set; } 
 } 

Получение информации о профиле

Когда пользователь регистрируется, вы можете отображать информацию о профиле, выполняя следующие действия: Получить текущий вход в систему UserId, чтобы вы могли просматривать пользователя в системе удостоверения личности ASP.NET

var currentUserId = User.Identity.GetUserId(); 

Создайте экземпляр UserManager в системе ASP.Identity, чтобы вы могли искать пользователя в системе

var manager = new UserManager<MyUser>(new UserStore<MyUser>(new MyDbContext())); 

Получить объект User

var currentUser = manager.FindById(User.Identity.GetUserId()); 

Получить информацию о профиле пользователя

currentUser.MyUserInfo.FirstName