2

Silverlight에서 SSL 클라이언트 측 인증서를 사용하여 편리한 웹 서비스에 액세스하는 방법에 대해 올바른 방향을 제시 할 수 있습니까?Silverlight 및 SSL 클라이언트 인증서

처리 방법이나 지원 여부에 대해 아무 것도 찾을 수없는 것 같습니다.

건배.

답변

1

Slipjig이 언급 :

"브라우저 스택은 경우, 거의 자동으로 수행하고, 다른 제한 사항 (모든 HTTP 동사에 대한 지원 부족, 응답 상태 코드 강요 등)로 기꺼이 살아야합니다. "

http://www.odata.org/developers/protocols/operations

: 그 당신을 받아 들일 경우, 마이크로 소프트 스스로가 WCF와 하나로, OData을 위해 그것을 할 방법처럼, 사용자 지정 X-HTTP-방법 헤더를 사용하여 API를 일부이 처리 방법을

보면 실제로,

msdn.microsoft.com/en-us/library/ff798339.aspx

"MSDN에서

는 마이크로 소프트 셰어 포인트 2010의 WCF 기반의 REST API와 함께 REST를 사용하는 방법에 대한이 언급 많은 파이어 alls 및 기타 네트워크 중개자는 GET 및 POST 이외의 HTTP 동사를 차단합니다. 이 문제를 해결하기 위해 WCF Data Services (및 OData 표준)는 "동사 터널링"이라는 기술을 지원합니다. 이 기술에서 PUT, DELETE 및 MERGE 요청은 POST 요청으로 제출되고 X-HTTP-Method 헤더는 수신자가 요청에 적용해야하는 실제 동사를 지정합니다. 자세한 내용은 OData 웹 사이트에서 MSDN 및 OData : OData : Operations (POST를 통한 터널링 방법)의 X-HTTP-Method를 참조하십시오. "

Don Box의 경우 GData와 관련하여 몇 가지 단어가 구체적으로 표시됩니다.

나는의 GData 클라이언트를 구축한다면 내가 사용 귀찮게 것 왜 www.pluralsight-training.net/community/blogs/dbox/archive/2007/01/16/45725.aspx

은 "솔직히 궁금 DELETE 및 PUT 메소드를 사용하면 X-HTTP-Method-Override가 더 많은 경우/배포에서 작동 할 것입니다."

같은 조언을 제공하여 실버 라이트의 이러한 한계를 해결 실버 라이트와 자바 상호 운용성에 대한 기사있다

:

www.infoq.com/articles/silverlight-java-interop

"실버 라이트가 지원하는 GET 및 POST HTTP 메소드 만 사용할 수 있습니다. 일부 방화벽은 PUT 및 DELETE HTTP 메소드의 사용을 제한합니다.

GET 및 POST HTTP 메소드 만 사용하여 진정한 RESTful 서비스를 만들 수 있습니다 (위에서 나열한 모든 REST 원칙을 준수). 즉 REST 아키텍처는 HTTP에 대한 특정 매핑을 필요로하지 않습니다 . Google의 GData X-Http-Method-Override 헤더는이 접근법의 한 예입니다.

* X-HTTP-Method-Override: PUT 
* X-HTTP-Method-Override: DELETE" 

희망이 도움이 : 웹 서비스가 POST에 X-HTTP-방법 - 재정의 헤더를 해석 할 경우

다음 HTTP 메소드 오버라이드 (override)

는 PUT을 수행하고 작업을 삭제하려면 헤더에 설정 될 수 있습니다 - 조쉬

0

이것 좀보세요.

http://support.microsoft.com/kb/307267

는이 그것은 당신이 브라우저 HTTP 스택 또는 클라이언트 HTTP 스택을 사용하고 있는지 여부에 따라 달라집니다

1

을하는 데 도움이

희망에 HTTPS URL을 변경합니다. 클라이언트 스택은 클라이언트 인증서 기간을 지원하지 않습니다. 브라우저 스택은 다른 제한 사항 (모든 HTTP 동사에 대한 지원 부족, 응답 상태 코드 강제 변환 등)을 사용하여 기꺼이 살고 있다면 거의 자동으로 수행됩니다.

그러나 OOB 시나리오에서 클라이언트 인증서가있는 브라우저 스택을 사용하여 문제가 발생했습니다. 이러한 조건에서 프리즘 모듈 로딩이 실패합니다. 요청은 IIS로 전달되지만 명백한 이유없이 500 개의 서버 오류가 발생합니다. 나는 클라이언트 증명서를 무시하도록 IIS를 설정하면 내가있는 브라우저 응용 프로그램을 실행하는 경우, 또는, 그것을 잘 작동합니다 : -/

0
Dim url As Uri = New Uri(Application.Current.Host.Source, "../WebService.asmx") 
Dim binding As New System.ServiceModel.BasicHttpBinding 
If url.Scheme = "https" Then 
    binding.Security.Mode = ServiceModel.BasicHttpSecurityMode.Transport 
End If 

binding.MaxBufferSize = 2147483647 'this value set to override a bug, 
binding.MaxReceivedMessageSize = 2147483647 'this value set to override a bug, 
Dim proxy As New ServiceReference1.WebServiceSoapClient(binding, New ServiceModel.EndpointAddress(url)) 
proxy.InnerChannel.OperationTimeout = New TimeSpan(0, 10, 0)