セキュリティ証明書を必要とする 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();
}