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

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

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

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

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

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

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

Любая помощь очень ценится.

Приветствия

Ответ 1

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

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

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

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

  • ваша модель Employee выглядит следующим образом

    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; }
        .........
    
  • ваш DbContext выглядит следующим образом

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

    WebSecurity.InitializeDatabaseConnection("mDBContext", 
      "Employees", "ID", "UserName", autoCreateTables: true);
    
  • добавить дополнительные поля в класс 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; }
    }
    
  • В методе RegisterController Register для замены HttpPost

    WebSecurity.CreateUserAndAccount(model.UserName, model.
    

    с

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

Ответ 2

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

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

Обновление

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

wikipedia

w3schools

MSDN

http://www.asp.net/mvc