给定以下控制器
namespace MyNamespace.Api.Controllers
{
[Authorize]
public class AccountController : ODataController
{
private Entities db = new Entities();
// GET odata/Account
[Queryable]
[ClaimsPrincipalPermission(SecurityAction.Demand, Operation = "Read", Resource = "Account")]
public IQueryable<Account> GetAccount()
{
return db.Accounts();
}
...
}
}
我覆盖ClaimsAuthorizationManager.CheckAccess(...)
public class AuthorizationManager : ClaimsAuthorizationManager
{
public override bool CheckAccess(AuthorizationContext context)
{
var resource = context.Resource.First().Value;
var action = context.Action.First().Value;
return Policies.Validate(resource, action);
}
}
Current Principal
这仅对我可以检查in general can是否有用Read
Account
。但是,如果我想检查某个用户可以阅读哪些帐户,我就迷路了。
假设我有一个经理用户,他应该能够读取他作为经理的所有帐户,而非经理用户应该只能读取他们自己的帐户。
对此是否有最佳实践,或者您以前是否做过类似的事情并给我一些提示?