最佳答案
我是完全新的使用 claims
在 ASP.NETIdentity
,并希望得到一个最佳做法在使用 Roles and/or Claims
的想法。
读了这么多,我还是有问题。
问: 我们不再使用角色了吗?
问: 如果是这样,为什么角色仍然提供?
问: 我们应该只使用索赔吗?
Q: Should we use Roles & Claims together?
我最初的想法是我们“应该”一起使用它们。我认为 Claims
是他们所支持的 Roles
的子类别。
例如:
角色: 会计
声明 : CanUpdateLedger,CanOnlyReadLedger,CanDeleteFromLedger < br/>
问: 它们是否打算相互排斥?
问: 还是只索赔并且“完全符合”你的索赔要求更好?
问: 那么这里的最佳实践是什么呢
同时使用角色和声明
当然,您必须为此编写自己的 Attribute 逻辑..。
[Authorize(Roles="Accounting")]
[ClaimAuthorize(Permission="CanUpdateLedger")]
public ActionResult CreateAsset(Asset entity)
{
// Do stuff here
return View();
}
完全符合你的要求
[ClaimAuthorize(Permission="Accounting.Ledger.CanUpdate")]
public ActionResult CreateAsset(Asset entity)
{
// Do stuff here
return View();
}