Asp.Net MVC C# [授权(角色“”)] 不起作用

本文关键字:不起作用 角色 MVC Net 授权 Asp | 更新日期: 2023-09-27 18:31:14

我正在尝试使用我的自定义管理器进行基于角色的授权。我有用户表和角色表。模型看起来像这样

public class Account : EntityModel
{
    public string Username { get; set; }
    public string PasswordHash { get; set; }
    public string Email { get; set; }
    public Account()
        : base("1", Suid.NewSuid())
    {
        Roles = new List<String>();
    }
    public static IEnumerable<Account> GetAll()
    {
        return TableHelper.GetAll<Account>();
    }
    public List<String> Roles { get; set; }
    public Account Save()
    {
        TableHelper.Save<Account>(this);
        return this;
    }
}

角色模型看起来像这样

public class Role : EntityModel
{
    public string Name { get; set; }
    public String Id
    {
        get
        {
            return this.RowKey;
        }
        set
        {
            this.RowKey = value;
        }
    }
    public Role()
        : base("1", Suid.NewSuid())
    {
    }
    public static IEnumerable<Role> GetAll()
    {
        return TableHelper.GetAll<Role>();
    }
    public static Role Get(string x)
    {
        return TableHelper.Get<Role>("1", x);
    }
}

我可以User.Roles列表中添加角色 ID。因此,我创建了一个名为 admin 的角色,并将其添加到用户列表中。它已成功添加。

然后我在我的一个控制器上尝试这个

[Authorize(Roles = "admin")]

但它不起作用。我错过了什么吗?

Asp.Net MVC C# [授权(角色“”)] 不起作用

您是否添加了角色提供程序以及其工作所需的其余部分?

有一个

类似的问题,它有一个很好的入门方法:创建一个授权属性 - 我需要知道什么?