4

firebase通知コード用

WebRequest tRequest = WebRequest.Create("https://fcm.googleapis.com/fcm/send"); 
tRequest.Method = "post";
tRequest.ContentType = "application/json";
var data = new{collapse_key = "unassigned", to = deviceToken,data = new
  {body = message,title = title,sound = "default"}
};

モバイルで通知するために渡すメッセージ

var serializer = new JavaScriptSerializer();
var json = serializer.Serialize(data);
Byte[] byteArray = Encoding.UTF8.GetBytes(json);
tRequest.Headers.Add(string.Format("Authorization: key={0}", applicationId));
tRequest.Headers.Add(string.Format("Sender: id={0}", senderId));
tRequest.ContentLength = byteArray.Length;

ここでコードの下にエラーが発生します

using (Stream dataStream = tRequest.GetRequestStream())
{ 
  dataStream.Write(byteArray, 0, byteArray.Length);
 using (WebResponse tResponse = tRequest.GetResponse())
  { 
    using (Stream dataStreamResponse = tResponse.GetResponseStream())
    { 

   //code 1
    }     
  }   
}  
4

4 に答える 4

12

タイトルの例外は、TLS 暗号化を使用してエンドポイントに接続していて、そのエンドポイントによって公開されている証明書が信頼されていないことを示しています。これは、CA (認証局) ストアにある証明書で署名されていないことを意味します。自己署名証明書のように。

証明書が自己署名されている場合は、CA ストアに追加できます。そうでない場合は、ブラウザーでエンドポイントをナビゲートし、エンドポイントが提示している証明書のコピーを探して、手動で信頼することができます。(エンドポイントがすでに侵害されている場合にこれを行うと、その証明書を手動で信頼することになることに注意してください。)

常に有効を返すカスタム証明書検証ハンドラーを追加することで、このチェックを回避することもできます! (真実)。ただし、これを行うと、エンドポイントの信頼性を確認する機能が失われるため、中間者攻撃にさらされることに注意してください

ServicePointManager
    .ServerCertificateValidationCallback += 
    (sender, cert, chain, sslPolicyErrors) => true;
于 2017-01-07T11:02:30.020 に答える
0
  1. 呼び出し元の Web サイトと API サイトには、「IIS Express Development Certificate」を使用する同じ SSL 証明書が必要です。</p>

  2. 証明書をローカル ファイルに エクスポートする 証明書のエクスポート

  3. 「ConsoleCertificate」の「Trusted Root Certification Authorities」フォルダに証明書をインポートします</p>

トラストルートにインポートする

于 2019-12-02T20:53:09.430 に答える