Как настроить простого поставщика членства для работы с собственной базой данных ASP.NET MVC 4

Я изучаю ASP.NET MVC 4 в эти дни. Я буду рад, если кто-то может помочь, ответив на мой вопрос.

Я строю академический проект "Система управления и поддержки проектов". Я разработал свою собственную базу данных, у меня есть собственные таблицы для пользователей в моей базе данных (два типа пользователей: сотрудник, который будет выполнять задачи, и клиент, который назначает / нанимает для задач), я собирался создать нового поставщика членства, но Я понял, что "Это пустая трата времени - заново изобретать колесо".

Теперь я создаю модель членства на ASP.NET MVC4 с использованием SimpleMembership (это будущее служб членства для приложений MVC). Он предоставляет более краткий поставщик членства для платформы ASP.NET и дополнительно поддерживает OAuth.

1- Я создал готовое интернет-приложение ASP.NET MVC 4 для настройки логики входа в систему, регистрации и управления пользователями для поддержки таблицы профиля пользователя. Я добавил три роли: администратор, сотрудник, клиент

Просматривая этот пост, я могу настроить регистрацию http://blog.longle.net/2012/09/25/seeding-users-and-roles-with-mvc4-simplemembershipprovider-simpleroleprovider-ef5-codefirst-and-custom-user-properties/

2. Сейчас я работаю, синхронизирую эту таблицу с таблицами пользователей, которые у меня есть в моей собственной базе данных. Принимая во внимание, что я добавил еще одно поле "Тип учетной записи", запрашивая пользователя во время регистрации, чтобы создать определенный профиль.

Любая помощь с благодарностью.

ура

2 ответа

Решение

С SimpleMembership есть 2 способа хранения и использования этой информации для аутентификации.

  1. Вы можете использовать таблицу по умолчанию (UserProfiles), которая находится в базе данных, на которую указывает строка "DefaultConnection".

  2. Вы можете использовать ВАШУ базу данных и таблицу в ней для замены таблицы UserProfiles по умолчанию.

Вариант 1 очень хорошо объяснен в другом месте. для варианта 2 выполните следующие шаги: предположим, что контекст вашей базы данных - это mDbContext, а таблица, которую вы хотите использовать для замены UserProfiles - это Employees.

  1. модель вашего сотрудника выглядит следующим образом

    namespace m.Models
    {
      public class Employee
      {
        [Key]
        [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
        public int ID { get; set; }
        public string UserName { get; set; }
    
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string Mobile { get; set; }
        public Designation Designation { get; set; }
        .........
    
  2. ваш DbContext выглядит так

    namespace m.Models
    {
        public class mDBContext : DbContext
        {
             DbSet<Employee> Employees { get; set; }
    ......
    
  3. Вы должны указать WebSecurity использовать вашу базу данных.

    WebSecurity.InitializeDatabaseConnection("mDBContext", 
      "Employees", "ID", "UserName", autoCreateTables: true);
    
  4. добавить дополнительные поля в классе RegisterModel в AccountModels

    public class RegisterModel
    {
        [Required]
        [Display(Name = "User name")]
        public string UserName { get; set; }
    
        [Required]
        [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
        [DataType(DataType.Password)]
        [Display(Name = "Password")]
        public string Password { get; set; }
    
        [DataType(DataType.Password)]
        [Display(Name = "Confirm password")]
        [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
        public string ConfirmPassword { get; set; }
    
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string Mobile { get; set; }
        public Designation Designation { get; set; }
    }
    
  5. В AccountController Register метод для HttpPost замените

    WebSecurity.CreateUserAndAccount(model.UserName, model.
    

    с

    WebSecurity.CreateUserAndAccount(model.UserName, model.Password, 
      new {  FirstName = model.FirstName, LastName = model.LastName, 
             Mobile = model.Mobile});
    
  6. перестроить и обновить базу данных, если ожидают каких-либо изменений (или добавить миграции).

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

Подобный вопрос с ответом

Обновить

После прочтения вашего первого комментария кажется, что вы должны сначала понять, что такое MVC, прежде чем вы коснетесь SimpleMembership. попробуйте следующие ссылки.

википедия

w3schools

MSDN

http://www.asp.net/mvc

Другие вопросы по тегам