1

처리해야 할 복잡한 AND/OR 조건이있는 경우 ASP.NET 코어에서 권한 부여 논리를 해결하는 데 어려움을 겪고 있습니다. 조건의 예는 내 API 메소드가 허가하기 전에 확인 :새로운 인증 모델 인 ASP.NET 코어의 복잡한 조건 (AND/OR)?

A & (B | C & D & E | C & F) - each condition consists of 1 or more checks 

내가 사용할 수있는 모든 인증 유형을 알고 (policy-basedresource-based 포함).

일반적으로 새로운 인증 모델을 사용하면 OR 조건에 대해 어떻게해야할지 모르겠습니다.

은 내가 OR 조건에 대한 승인 처리기를 가질 수 있음을 이해하지만, 내 예제 (이 충분하지 않습니다 나에게 느낌, 내가 너무 못생긴 것 때문에 내가 (B) | (C & D & E) | (C & F) 3 인증 처리기 한 요구 사항을 만들 수 있다고 생각하지 않습니다 특히 이러한 조건이 비즈니스 모델 규칙으로 인해 통합되지 않는 경우).

I는 해당 인증 처리기는 서로 의존 할 수 알. 또한 하나의 처리기를 여러 요구 사항에 더 일반적으로 연결할 수 없다고 생각합니다.

이러한 조건을 처리하는 다른 방법이 있습니까? 이러한 문제를 해결하기 위해 복잡성을 작은 단순한 조각으로 나누는 일반적인 규칙이 있습니까?

답변

1

이러한 경우를 처리하기 위해 사용자 고유의 미들웨어 + 사용자 정의 속성을 만드는 것이 좋습니다. 또한 이러한 규칙을 처리하려면 이진 열거 형을 정의해야합니다.

[CustomAuthorization(GroupA.A | GroupB.A & GroupC.D))] 
+0

감사합니다. 모든 맞춤 인증 미들웨어에 대한 좋은 링크가 있습니까? – Learner

+0

여기에서 시작해보십시오 : https://docs.microsoft.com/en-us/aspnet/core/fundamentals/middleware?tabs=aspnetcore2x는 그리고 이것은 시작하는 좋은 점은 또한 – Leonid

+0

: https://dotnetcoretutorials.com/ 2017/03/10/creating-custom-middleware-asp-net-core / – Leonid