2016-07-05 3 views
0

특성 라우팅을 사용하는 경우 특정 런타임 조건 (예 : 라이센스)에 따라 경로를 제거 할 수 있습니까? 이 같은조건부 특성 라우팅

뭔가 :

[LicensedRoute("/api/whatever")] 

곳 '/ API/어떤'응용 프로그램이 허가 된 경우에만 경로 테이블에 추가됩니다.

분명히 조치 방법에서 명시 적으로 점검을 수행하거나 조치 필터를 사용하여 요청을 검증 할 수 있지만 궁극적으로는 소프트웨어가 라이센스가없는 경우 사용할 수없는 경로를 선호합니다. 그것은 편안하고 http://www.asp.net/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2

인가 :

+1

아마도이 경우 사용자 정의 인증 속성이 더 관련이 있습니다. – Albert

답변

1

는 라우팅 속성해야 할 것 같은데? 라이선스 정보를 저장하는 방법 : 사용자 로그인입니까? 토큰? 키?

토큰 기반 인증을 통해 클라이언트가 RESTful 일 때마다 토큰을 전달할 수 있습니다. 예를 들어, 여러 가지 "라이센스"수준/유형 정의 (예 : 무료/평가판/기본/프로)를 선택한 다음 영구 저장소 (테이블) 토큰 (guids)을 라이선스 유형으로 매핑합니다.

맞춤 속성을 사용하여 필요한 최소 라이센스 유형 (예 : [MinimumLicence("Basic")])으로 각 엔드 포인트/컨트롤러/액션을 표시합니다. 그런 다음 필요한 라이센스를 기반으로 "라우팅 테이블"을 만듭니다.

이 경우 경로를 "제거"하는 대신 거부합니다.

+0

짧은 대답은 아니오입니다. – Metro