我正在尝试使用自定义管理器进行基于角色的授权。我有用户表和角色表。模型看起来像这样
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")]
但它不起作用。我错过了什么吗?
答案 0 :(得分:0)
您是否添加了角色提供者以及其工作所需的其余部分?
有一个类似的问题,它有一个很好的方法来开始这个:Creating a AuthorizeAttribute - what do I need to know?