2010-12-13 2 views
0

저는 Windows 서비스를 통해 호스팅되는 WCF 서비스를 만들고 있습니다. 내 사용자 지정 권한 부여 관리자 및 권한 부여 정책을 추가하고 Authorization Policy의 Evaluate() 메서드가 실제로 권한 부여 관리자의 CheckAccessCore() 후에 호출되는 것을 보았습니다 : 반대가되어서는 안됩니까? WCF 4.0 : ServiceAuthorizationManager 이후에 IAuthorizationPolicy Evaluate()가 호출 됨 CheckAccessCore() : 이유가 무엇입니까?

내가 구글에서 검색하고 몇 가지 팁을 찾았지만 나 위해 작동하지 않았다 봤는데 (예 : link) 여기

가의 app.config의 싹둑입니다 :

<userNameAuthentication userNamePasswordValidationMode="Custom" 

     customUserNamePasswordValidatorType="Reply.Platform.IoTAccessControlLibrary.IoTPwdValidator, Reply.Platform.IoTAccessControlLibrary" /> 

     </serviceCredentials> 

     <serviceAuthorization serviceAuthorizationManagerType="Reply.Platform.IoTAccessControlLibrary.IoTServiceAuthorizationManager, Reply.Platform.IoTAccessControlLibrary"> 

     <authorizationPolicies> 

      <add policyType="Reply.Platform.IoTAccessControlLibrary.IoTAuthorizationPolicy, Reply.Platform.IoTAccessControlLibrary" /> 

     </authorizationPolicies> 

     </serviceAuthorization> 

수 누군가 나를 도울까요? 의도 한대로

감사합니다,

GIANPAOLO

답변

1

그것은 정확히 노력하고 있습니다. 이 단순한 방정식은 접근이 허용되지 않아야 접근이 허가되어야 하는지를 검사 할 필요가 없다. 여기에서 제공하는 예제의 경우 사용자 이름/암호 쌍의 올바른 조합을 먼저 확인한 다음 시스템에 대한 액세스 권한이 있는지 확인합니다. 시스템에 대한 액세스 권한이 있는지 확인한 후 정의 된 정책에 따라 권한이 부여되었는지 여부를 평가합니다.

1)합니까 알려진 사용자와 사용자 이름과 암호가 일치 :

이 기본 예제를 생각해? 예. (서비스 자격 증명)
2) 알려진 사용자가 시스템에서 활성화되어 있습니까? 예. (서비스 인증)
3) 알려진 사용자의 역할이 'X'입니까? 예. (IAuthorizationPolicy)

따라서 워크 플로는 WCF에 의해 정의됩니다.

+0

완벽한 답변 감사합니다 BadDawg, RIP 내 친구. –