Ответ 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});
-
перестроить и обновить базу данных, если ожидаете каких-либо изменений (или добавить миграции).