Итак, я пытаюсь реализовать различные виды пользователей по моему заявлению, первый, скажем, есть только один вид пользователя:Различные типы пользователей в ASP.Net Идентичность 2,0
public class ApplicationUser : IdentityUser
{
// Other Properties
public int TeacherID { get; set; }
[ForeignKey("TeacherID ")]
public virtual Teacher Teacher { get; set; }
}
public class Teacher
{
[Key]
public int TeacherID { get; set; }
public int UserID { get; set; }
// Other properties
[ForeignKey("UserID")]
public virtual ApplicationUser User { get; set; }
}
Там в один ко одна связь между этими двумя объектами, но что, если есть более одного типа пользователей? У меня не может быть этого ForeignKey на объекте User, я думаю, что я пойду в неправильном направлении.
Я хотя бы об использовании ролей для этого, поэтому для каждого есть админ, учитель, ученик и разные роли, но что произойдет, если я хочу сохранить дополнительные свойства для каждой роли?
public class IdentityUserRole<TKey>
{
public IdentityUserRole();
// Resumen:
// RoleId for the role
public virtual TKey RoleId { get; set; }
//
// Resumen:
// UserId for the user that is in the role
public virtual TKey UserId { get; set; }
}
Я имею в виду, я могу расширить класс IdentityUserRole и добавить дополнительные свойства, но как я могу добавить свойства для каждого вида роли?
Вы не можете добавлять свойства к каждому виду ролей отдельно. Все роли будут содержать все свойства, которые вы включили в свою таблицу UserRole, поскольку каждое свойство будет столбцом, но вы можете назначить разные обязанности для разных ролей. Или вы можете использовать проверку подлинности на основе утверждений. Проверьте эти ролики, чтобы создать пользовательские роли. http://stackoverflow.com/questions/25857806/extending-identityuserrole-in-identity-2-0/25857923#25857923 – DSR