Как настроить простого поставщика членства для работы с собственной базой данных 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 способа хранения и использования этой информации для аутентификации.
Вы можете использовать таблицу по умолчанию (UserProfiles), которая находится в базе данных, на которую указывает строка "DefaultConnection".
Вы можете использовать ВАШУ базу данных и таблицу в ней для замены таблицы UserProfiles по умолчанию.
Вариант 1 очень хорошо объяснен в другом месте. для варианта 2 выполните следующие шаги: предположим, что контекст вашей базы данных - это mDbContext, а таблица, которую вы хотите использовать для замены UserProfiles - это Employees.
модель вашего сотрудника выглядит следующим образом
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; } }
В AccountController Register метод для HttpPost замените
WebSecurity.CreateUserAndAccount(model.UserName, model.
с
WebSecurity.CreateUserAndAccount(model.UserName, model.Password, new { FirstName = model.FirstName, LastName = model.LastName, Mobile = model.Mobile});
перестроить и обновить базу данных, если ожидают каких-либо изменений (или добавить миграции).
Следуйте ответу на аналогичный вопрос по ссылке ниже. Если у вас есть еще вопросы, дайте мне знать.
Обновить
После прочтения вашего первого комментария кажется, что вы должны сначала понять, что такое MVC, прежде чем вы коснетесь SimpleMembership. попробуйте следующие ссылки.