3

JsonServiceClient を使用してリクエスト オブジェクトをシリアル化するための呼び出しを行っています。私のサーバーは https を使用しており、自己署名証明書を作成しました。

クライアントが接続を試み、サーバーが、証明書が信頼されておらず、サーバーの ID が検証されていないことを応答すると、例外がスローされたように見えます。

ブラウザでは、このメッセージを無視できます。JsonService クライアントを https と自己署名証明書で動作させるにはどうすればよいですか?

4

1 に答える 1

3

これは、起こっていることと同様の問題だと思います。ServerCertificateValidationCallback の詳細については、こちらこちらをご覧ください。以下は、JsonServiceClient の「信頼されていない」問題を回避するための例/テンプレートを提供するテストです。明らかに、独自の証明書検証を作成することにはリスクがあります。

public void Test()
{
    ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateValidationCallback(ValidateRemoteCertificate);
    var client = new JsonServiceClient();
    var response = client.Post<string>("https://localhost/Secure/Route", new MySecureRequest());

    Assert.IsNotNull(response);
}

private static bool ValidateRemoteCertificate(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors policyErrors)
{
    //Do something to check the certificate is valid. 
    return false || cert.Subject.ToUpper().Contains("Something in Cert");
}

お役に立てれば。

于 2013-05-17T19:57:52.860 に答える