현재 내가 직면하고있는 도전 과제에 대한 정보를 찾고 있습니다.MVVM은 웹 서비스를 인식합니다.
내 시스템에서 제공하는 일부 WCF 서비스를 호출하려는 사용자를 식별하는 데 사용하는 사용자 지정 WIF STS를 구축했습니다. WCF 서비스는 호출자에게 주어진 서비스를 호출하는 데 필요한 클레임이 있는지 여부를 결정하는 사용자 지정 권한 관리자를 사용합니다.
이제 WPF 앱을 만들고 있습니다. 그 WCF 서비스의 위에. 보기 모델이 모델을 구현하는 보호 된 WCF 서비스를 호출하도록 MVVM 패턴을 사용하고 있습니다. 현재 직면하고있는 도전 과제는 현재 사용자가 실제로 호출하지 않고 웹 서비스 메서드를 성공적으로 호출 할 수 있는지 여부를 알 수 없다는 것입니다. 기본적으로, 내가 달성하고자하는 것은 메소드를 성공적으로 호출 할 수있는 능력을 기반으로 UI의 특정 부분을 활성화/비활성화하는 것입니다.
내가 지금까지 생각해 낸 최상의 솔루션은 사용자 지정 권한 정책 관리자가 사용자가 주어진 메서드를 호출 할 수 있는지 여부를 결정할 수있는 동일한 비즈니스 논리를 기반으로하는 서비스를 만드는 것입니다. 이제이 메소드는 문자열, 실제로 ServiceAddress와 Method (Action)의 두 문자열로이 서비스에 전달되어야하며,이 입력을 기반으로 서비스는 현재 사용자에게 액세스 권한이 필요한지 여부를 결정할 수 있습니다 방법. 분명히 이것이 작동하려면이 서비스 자체가 동일한 STS의 발급 된 토큰을 요구해야하며 동일한 청구를 통해 해당 작업을 수행해야합니다.
과거에 비슷한 일을 한 사람이 있습니까? 아니면이 작업을 수행하는 데 좋은 아이디어가 있습니까? 사전에
감사합니다,
클라우스
안녕하세요, 답변 해 주셔서 감사합니다. 모든 서비스 방법에는 잠재적으로 다른 주장이 필요하므로 마지막 제안은 내가 원하는 것일 수 있습니다. 이제, 내 뷰 모델이 계약 IService1로 서비스를 호출한다고 가정 해 보겠습니다. 주소 및 메서드를 포함하는 MethodTheUserCanCall 컬렉션이있는 경우 일반적인 방법으로 IService1의 SomeMethod 메서드가 Address/메서드 만 포함하는 MethodTheUserCanCall 인스턴스로 표시된다는 것을 어떻게 알 수 있습니까? –