내가이는 내가 여부를 확인할 수있는 지점에 유용 ClaimsAuthorizationManager.CheckAccess(...)
보안 엔티티 둘 중 하나로, OData 엔드 포인트
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);
}
}
우선 다음과 같은 컨트롤러
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();
}
...
}
}
을 감안할 때 Current Principal
일반적으로은 Read
Account
입니다. 그러나 어떤 사용자가 어떤 계정을 읽을 수 있는지 확인하고 싶다면 잃어 버릴 수 있습니다.
관리자가 아닌 모든 사용자가 자신의 계정 만 읽을 수 있어야하는 반면 관리자 인 모든 계정을 읽을 수 있어야하는 관리자 사용자가 있다고 가정 해 보겠습니다.
이전에 이와 같은 작업을 수행했는지 또는 몇 가지 힌트를 제공 했습니까?
그레이트 : 더 읽기. 그들은 인쇄 업계가 죽어 가고 있다고 말하지만 나는 반대한다. 물론 Kindle이 있지만 인쇄 된 사본을 선호합니다. –