2012-12-21 2 views
3

내 Windows 전화 응용 프로그램에서 MPNS를 사용하고 클라이언트에 푸시를 보내는 webservice를 인증하려고합니다.MPNS 보내는 푸시 금지 응답 403

나는 MPNS 인증에 필요한 모든 단계를 완료했다.

  1. 내 WindowsPhone 개발 대시 보드에 인증서를 업로드했습니다.
  2. 는 https로 반환 URI를 얻기 내 인증서
  3. 의 일반 이름과 채널 이름을 만든 : // 그게 내 푸시 채널이
  4. 내 WebRequest 클래스 헤더

그러나 인증서를 추가 인증을 의미 푸시 메시지를 보내고 webrequest를 보내 겠지만 "원격 서버가 오류를 반환했습니다 : (403) 금지되었습니다." 응답. 나는 나의 요청에 잘못된 것을하고 있으며 인증서를 적절하게 추가하지 않는다는 것을 읽었다. 여기

는 요청 헤더

X509Certificate2 CERT는 = 새 X509Certificate2 (는 Server.MapPath ("인증서 표시/abc.crt을"), "비밀번호") 내 코드입니다; request.ClientCertificates.Add (Cert);

우리는 verisign ssl이 있고 Visual Studio IIS에서 테스트하고 있습니다. 현재 서버에 호스팅되지 않으며 심지어 IIS에서는 구성되지 않았으며 IIS 용으로 구성된 SSL도 없습니다.

그게 다른 것입니까?

답변

0

문제에 대한 답은 없습니다.

그러나 요청에 클라이언트 인증서를 추가하면 공개 키만 추가됩니다. 그런 다음 서버는 공개 키로 서명 된 챌린지로 응답하고 (클라이언트 인증서 인증 참조) 개인 키로 해독하고 응답해야합니다. 이 인증 프로세스가 실패하면 403이 금지됩니다.

따라서 .pfx/.p12 (개인 키, 공용 인증서, 중간 CA 및 루트 CA 인증서 포함)를 로컬 컴퓨터 인증서 저장소로 가져오고 IIS 서버에 액세스 할 수 있어야합니다.

Windows와 관련된 변수가 너무 많아서 테스트 목적으로 Curl을 대신 사용할 수 있습니다. .pfx/.p12를 먼저 .pem으로 변환해야합니다 (openssl 사용). 일부 통지가 제대로 전송되는 어떤 다른 사람이 특별한 이유없이 금지 403으로 거부 : 당신이 일하는 것을 일단

curl --cert P:\cert.pem:PASSWORD -v -H "Content-Type:text/xml" -H "X-WindowsPhone-Target:To 
ast" -H "X-NotificationClass:2" -X POST -d "<?xml version='1.0' encoding='utf-8' 
?><wp:Notification xmlns:wp='WPNotification'><wp:Toast><wp:Text1>My title</wp:Te 
xt1><wp:Text2>My subtitle</wp:Text2></wp:Toast></wp:Notification>" https://am3.n 
otify.live.net/unthrottledthirdparty/01.00/push_uri_here 

, 당신은 저와 같은 문제에 직면 할 수있다.

http://social.msdn.microsoft.com/Forums/sharepoint/en-US/383617ab-eafe-45fb-92cc-5e4b25a50e7f/authenticated-push-notifications-failing-randomly-403-forbidden?forum=wpnotifications

여기에 같은 :

https://stackoverflow.com/questions/23805883/windows-phone-authenticated-push-notifications-failing-randomly-403-forbidden

이 스레드를 참조하십시오