2

セキュリティ証明書を必要とする cURL コマンドがあります。C# で呼び出しを WebRequest に置き換えようとしています。

curl コマンドは次のとおりです。

curl -d "uid=UUUUUU&password=PPPPPP&active=Y&type=I" https://www.aidap.naimes.faa.gov/aidap/XmlNotamServlet --key aidap_key.pem --cacert aidap_ca.pem --cert aidap_client.pem: start123 -k -O

私が立ち往生しているのは、 --key 、 --cacert 、および --cert パラメーターを組み込む方法です。現在、私は WebRequest.PreAuthenticate=true を設定し、証明書ストアのセキュリティ証明書の名前とパスワードを使用して NetworkCredential を作成しています (--key、--cacert などにあると想定しています)。

以下のコードを実行すると、403 禁止例外が発生します。

何か案は?

私が使用しているコードは次のとおりです。

 public void RetrieveNotams()
        {
            string myURL = "https://www.aidap.naimes.faa.gov/aidap/XmlNotamServlet";

            HttpWebRequest req;

            NetworkCredential myCred = new NetworkCredential("AAAAA", "BBBBB");

            req = (HttpWebRequest)WebRequest.Create(myURL);

            req.PreAuthenticate = true;

            req.Credentials = myCred;

            req.Method = "POST";

            req.ContentType = "application/x-www-form-urlencoded";
            string postData = "uid=UUUUUU&password=PPPPPP&active=Y&type=I";
            byte[] byteArray = Encoding.UTF8.GetBytes(postData);
            req.ContentLength = byteArray.Length;

            using (Stream dataStream = req.GetRequestStream())
            {
                dataStream.Write(byteArray, 0, byteArray.Length);
                dataStream.Close();
            }

            req.GetResponse();

        }
4

2 に答える 2