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