gpt4 book ai didi

asp.net - 不同能力的用户

转载 作者:行者123 更新时间:2023-12-04 04:45:24 25 4
gpt4 key购买 nike

我正在创建一个 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; }
    }

    最佳答案

    我不确定我的 Q 是否正确,但是如果您使用的是 Internet 应用程序模板,则可以使用角色管理简单地管理应用程序的访问控制。

    首先,在webpages_Roles中添加一些角色你的数据库表。

    然后,只需将用户添加到这些角色:

    Role.AddUserToRole("role1");

    现在,对于过滤内容,您只需要做两项工作:

    1) 使用 [Authorize] 属性过滤 Controller 对适当角色的请求:
    [Authorize(Roles = "role1, role2, ...")]

    2) 将适当的内容呈现给相关用户。首先检索当前用户的角色:
    var roles = Roles.GetRolesForUser(User.Identity.Name);

    然后,根据他/她的角色,为他/她渲染内容:
    bool hasRole1 = roles.Contain("role1") | roles.Contain("admin");
    // ...
    @if (hasRole1)
    {
    // Show content for role1 users...
    }

    关于asp.net - 不同能力的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18286793/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com