Asp.Net MVC C#[授权(角色"")]无法正常工作

时间:2016-01-21 10:38:23

标签: c# asp.net azure

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

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")]

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

1 个答案:

答案 0 :(得分:0)

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

有一个类似的问题,它有一个很好的方法来开始这个:Creating a AuthorizeAttribute - what do I need to know?