Как настроить simple membership provider для работы с собственной базой данных ASP.NET mvc 4

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

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

теперь я строю модель членства на ASP.NET MVC4 с использованием SimpleMembership (это будущее членских сервисов для приложений MVC ).Он обеспечивает более сжатый членский состав ASP.NET framework, и поддерживает 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. вы можете использовать таблицу default (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 для HttpPost replace

    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