2009-06-04 5 views
1

나는 클라이언트의 사용자 이름/암호 자격 증명을 지정할 수있는 서비스/끝점 동작을 만들려고 명백하게 헛된 시도에서 WCF 보안을 파헤쳐 왔지만 나는 그것에 대한 내장 기능을 사용하여 행복합니다). 제 의도는 JSONP와 함께 사용할 쿼리 문자열에 사용자 이름 (암호 없음)을 제공하는 것입니다.사용자 지정 클라이언트 자격 증명 유형 (쿼리 문자열의 사용자 이름)

그러나 지금까지 내 뇌가 내 귀로 새어 나오고 있습니다. 누구든지 올바른 방향으로 나를 가리킬 수 있습니까?

우리가 여기있는 동안 누구나 clientCredentials와 serviceCredentials의 차이점을 설명 할 수 있습니까?

.NET 3.5 SP1에서 WCF를 사용하고 있습니다.

편집 : 나는 MSDN 기사 [How To : Custom Client and Service Credentials | http://msdn.microsoft.com/en-us/library/ms730868(VS.85).aspx]하지만 확장해야 할 부분을 보여줄 때 특히 유용하지만 각 부분의 책임은 아닙니다. 리플렉터를 사용하는 경우에도 실제로 어떤 클래스/인터페이스가 실제로 HTTP 헤더 등에서 오는 요청으로부터 자격 증명을 가져 오는 책임이 있는지 찾을 수 없습니다.

편집 2 : 전통적 인증 방법을 사용하여 명명 된 파이프 바인딩이 있으므로 aspnet 호환성을 사용하지 않는 것이 좋습니다.

편집 3 : 누구나 생각하기에 사용자 이름 : [email protected]l.com 형식을 알고 있지만 IE8에서는 사용할 수 없습니다 (적어도). 테스트 페이지의 < 스크립트> 태그에 포함되어 있어도 자동으로 거부 된 것으로 보입니다.

+0

또한 QueryString 인수 대신 HTTP 쿠키를 사용하고 싶지만이 질문에 대한 답변을 찾고 있습니다.또한 저는 사용자 지정 클라이언트 및 서비스 자격 증명을 만들기위한 MSDN 기사를 읽었으며 요청에 자격 증명을 실제로 첨부하는 방법을 보여주는 데는 부족하다는 점에 동의합니다. 내가 찾으면 여기에 다시 올릴거야. –

답변

3

클라이언트 신임은 클라이언트가 서비스에 제공하는 것입니다. ServiceCredentials은 구성에서 상호 인증이 필요할 때 서비스가 클라이언트에 제공하는 것입니다. 서비스 측면에서

: 클라이언트 측에

WSHttpBinding b = new WSHttpBinding(SecurityMode.Transport); 
b.Security.Transport.ClientCredentialType = HttpClientCredentialType.Basic; 

:

proxy.ClientCredentials.UserName.UserName = "username"; 
proxy.ClientCredentials.UserName.Password = "password"; 

또는

당신은 BasicHttpBinding을 사용하는 경우가하는 look at this을. 여기

ClientCredentialType사용자 이름의 "클라이언트가 사용자 이름 자격 증명을 사용하여 인증 할 수 있음을 나타냅니다."는

또는 사용자 정의 사용자 이름/암호 유효성 검사기를 만드는

Here is an example.

여기에 도움이되기를 바랍니다. :-)

관련 문제