IIS (BasicHTTPBinding
사용)에서 호스팅되는 WCF 서비스를 사용하는 WPF 클라이언트 응용 프로그램이 있습니다. 저는 SSL 및 기본 인증으로 이동하려고합니다. 왜냐하면 우리는 오프 도메인 PC에서이 앱을 사용할 사용자가 있기 때문입니다. 나는 서비스 객체 (우리는 ProxyGenerator라고 부름)의 인스턴스를 만들고 반환하는 클래스를 가지고 있으며, username (문자열)과 password (securestring)를 저장한다. 흐름은
내 앱 수명 동안 wcf 바인딩에 대한 자격증 명 유지
로그인 창에는 텍스트 상자, 암호 상자 및 로그인 버튼이 있습니다. 로그인 버튼을 누르면 proxygenerator 객체를 생성은 사용자 이름과 암호의 설정하고,에 (파라미터 스레드 시작을 통해)에 전달 :
메인 창, 리얼 Work®을 할 수있는 사용자 인터페이스를 포함하고 사용할 프록시를 얻을 수
ProxyGenerator.GetProxy()
를 호출 . 프록시에 액세스해야 (메인 창에 포함)
3. UserControl1을 : 우리가 얻을 때까지
이 확인을 작동하는 것 같다.
도메인 외부 액세스의 필요성을 감안할 때이를 처리하는 가장 이상적인 방법은 무엇입니까? 이상적으로 모든 사람이 도메인에있을 것이고 나는 iis를 통해 windows 인증을 사용할 수 있습니다. (따라서 내가 필요할 때마다 시스템에서 사용자 자격 증명을 얻습니다.) 이것이 실제로 현재 작동하는 방식입니다.)
참고 : 이것은 "지금 작동 중이고 나중에 해결할"프로젝트입니다. 또한, 나는이 서비스에 대해 좀 새로운 것이므로 프록시가 잘못된 단어 일 수도 있고 잘못된 컨텍스트에서 사용할 수도 있습니다.
public class ProxyGenerator
{
public string username;
public SecureString password;
public string endpoint;
private TestingService.ServiceClient _proxy = null;
public ProxyGenerator(string uname, SecureString pword)
{
username = uname;
password = pword;
endpoint = "insert endpoint here"
}
public TestingService.ServiceClient GetProxy()
{
_proxy = new ServiceClient(endpoint);
_proxy.ClientCredentials.UserName.UserName = username;
_proxy.ClientCredentials.UserName.Password = password;
return _proxy;
}
}