내 응용 프로그램에 일부 인증 메커니즘을 구현해야합니다. 권한 부여는 클라이언트에서 서버로 전송되는 객체를 기반으로합니다. 컨트롤러의 모든 동작은 인수 목록으로 사용됩니다. 이 목록에있는 개체의 중첩 된 속성을 기반으로 컨트롤러 동작에 대한 액세스 권한을 부여하거나 거부해야합니다. 나를 보낸 객체의 모든 관련 재산의 가치를 얻을 수 있도록 내 첫 번째 방법 때문에 요청이 JSON 요청이 있다는 사실,권한 부여를위한 ActionFilterAttribute
public class CustomAuthAttribute : FilterAttribute,IAuthorizationFilter
{
public void OnAuthorization(AuthorizationContext filterContext)
{
//SOME LOGIC HERE
}
}
그러나 사용자 정의 필터 속성을 사용했다, 내가에만 액세서가 (어렵다 json 값). 그래서 FilterAttribute 대신 ActionFilterAttribute를 사용할 수 있다고 생각했습니다.
public class ActionFilterAuthorization: ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var castedList = filterContext.ActionParameters["key"] as List<MyObject>;
//logic here
//throw exception is access is not granted
}
}
인증이 적합한 해결책인가요? 행동의 승인을 확인하는 것이 더 좋을까요 ??