2012-12-21 55 views
3

我想在我的Windows Phone應用程序使用MPNS,我們要驗證其發送推客戶端web服務。MPNS發送推禁止響應403

我已經做了所需要的MPNS認證的所有步驟。

  1. 上傳我的WindowsPhone的開發儀表板的證書。
  2. 建立的頻道名稱與我的證書
  3. 獲取返回URI以https的共同的名字://這就是我的意思是推式信道進行認證
  4. 將證書添加到我的WebRequest頭

但是,當我將發送推送消息併發送webrequest,但我得到「遠程服務器返回錯誤:(403)禁止。」響應。我已經讀過,我在做我的要求有問題,並沒有正確添加證書。

這裏是我的請求報頭

X509Certificate2證書=新X509Certificate2(使用Server.Mappath( 「證證書/ abc.crt」), 「密碼」)的代碼; request.ClientCertificates.Add(Cert);

我們擁有威瑞信SSL和我從我的Visual Studio IIS測試此。它現在不在任何服務器上託管,甚至沒有在IIS中配置,也沒有爲IIS配置SSL。

是這個問題或別的什麼。

回答

0

對於您的問題沒有獨特的答案。

然而,當你添加一個客戶端證書,以你的要求,你只有公鑰添加到它。然後,服務器將用您的公共密鑰(請參閱客戶端證書身份驗證)對挑戰做出響應,您需要使用您的私鑰解密並作出響應。如果這個認證過程失敗,你將得到一個403禁止。

因此,您必須確保將.pfx/.p12(包含您的私鑰,公共證書,中級CA和根CA證書)導入到本地計算機證書存儲區,並且您的IIS服務器可以訪問它。

因爲有與Windows這麼多的變量,可以使用捲曲,而不是用於測試目的。請注意,您必須先將.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