Я создаю приложение ASP.Net MVC 5. На моем веб-сайте существует 3 разных типа пользователей.Пользователи с различными возможностями
- Администратор
- Обычные пользователи
- Рестораны
Каждый из этих пользователей имеют свои собственные возможности и права доступа. Смысл, представление для каждого из них должно быть разным.
Я создал модели как для обычного, так и для ресторана. Мне было интересно, как я могу изменить существующую структуру для поддержки этой функции.
public class User : IUser
{
public User()
: this(String.Empty)
{
}
public User(string userName)
{
UserName = userName;
Id = Guid.NewGuid().ToString();
}
[Key]
public string Id { get; set; }
[Required]
public string UserName { get; set; }
[Required]
public string FirstName { get; set; }
[Required]
public string LastName { get; set; }
public string Phone { get; set; }
public string MobilePhone { get; set; }
[Required]
[DataType(DataType.EmailAddress)]
public string Email { get; set; }
public virtual IList<UserAddress> Addresses { get; set; }
}
public class Restaurant
{
[Key]
public int ID { get; set; }
[Required]
public string Name { get; set; }
public virtual IList<RestaurantAddress> Addresses { get; set; }
public virtual IList<RestaurantFood> Menu { get; set; }
public virtual IList<Review> Reviews { get; set; }
[DataType(DataType.Url)]
public string Website { get; set; }
[DataType(DataType.PhoneNumber)]
public string Phone { get; set; }
[DataType(DataType.PhoneNumber)]
public string Fax { get; set; }
[DataType(DataType.EmailAddress)]
public string Email { get; set; }
public int Seats { get; set; }
public double AverageRating { get; set; }
public double AveragePrice { get; set; }
}
[это] (Http: //www.dotnettips. Информация/запись/тысяча сто шестьдесят шесть /% D9% 85% D8% AF% DB% 8C% D8% B1% DB% 8C% D8% AA-% D8% B3% D9% 81% D8% A7% D8% B1% D8% B4% DB% 8C-% D8% B3% D8% B7% D9% 88% D8% AD-% D8% AF% D8% B3% D8% AA% D8% B1% D8% B3% DB% 8C-% DA % A9% D8% A7% D8% B1% D8% A8% D8% B1% D8% A7% D9% 86% D8% AF% D8% B1-mvc) Сообщение может быть полезным –
@SirwanAfifi Спасибо. Это было полезно в некоторой степени. Мне придется искать еще кое-что. Моя проблема заключается в следующем: что является лучшим способом изменить существующие модели, чтобы добавить поддержку этой гибкости. Должен ли я добавить всю информацию в модель «Пользователь»?Должен ли я добавить внешний ключ к модели User? Я хочу интегрировать дополнительную информацию в модель. –
@AlirezaNoori Я обновил свой ответ, который может дать вам точную информацию о том, как его реализовать. Вам не обязательно нужен ASP Security Kit, если вы можете потратить много часов, чтобы понять реализацию. –