3

Windows Phone アプリで MPNS を使用したいと考えており、クライアントにプッシュを送信する Web サービスを認証します。

MPNS 認証に必要なすべての手順を実行しました。

  1. WindowsPhone 開発ダッシュボードに証明書をアップロードしました。
  2. 証明書の共通名でチャネル名を作成しました
  3. https:// を使用してリターン URI を取得することは、プッシュ チャネルが認証されていることを意味します
  4. WebRequest ヘッダーに証明書を追加する

しかし、プッシュ メッセージを送信して webrequest を送信しようとすると、「リモート サーバーがエラーを返しました: (403) 許可されていません」というメッセージが表示されます。応答。リクエストに何か問題があり、証明書を適切に追加していないことを読みました。

リクエストヘッダーのコードは次のとおりです

X509Certificate2 Cert = new X509Certificate2(Server.MapPath("Certs/abc.crt"), "password"); request.ClientCertificates.Add(証明書);

Verisign ssl があり、ビジュアル スタジオ IIS からこれをテストしています。現在、どのサーバーでもホストされておらず、IIS で構成されておらず、IIS 用に SSL が構成されていません。

それが問題なのか、それとも別の何かなのか。

4

1 に答える 1

0

あなたの問題に対する唯一の答えはありません。

ただし、クライアント証明書を要求に追加する場合は、公開鍵のみを追加します。サーバーは公開鍵で署名されたチャレンジで応答し (クライアント証明書認証を参照)、秘密鍵で解読して応答する必要があります。この認証プロセスが失敗すると、403 禁止が表示されます。

したがって、.pfx/.p12 (秘密キー、公開証明書、中間 CA およびルート CA 証明書を含む) がローカル マシンの証明書ストアにインポートされ、IIS サーバーがそれにアクセスできることを確認する必要があります。

Windows に関連する変数は非常に多いため、代わりに Curl をテスト目的で使用できます。最初に .pfx/.p12 を .pem に変換する必要があることに注意してください (openssl を使用)。

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

それが機能するようになると、私と同じ問題に直面する可能性があります。一部の通知は正しく送信され、一部の通知は明らかな理由もなく 403 禁止で拒否されます。このスレッドを参照してください:

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

于 2014-05-22T12:06:26.110 に答える