1

PowerShellはかなり新しく、誰かが私を正しい方向に向けることができることを望んでいます。

POSTリクエストを実行し、認証のためにPOSTリクエスト中にローカルに保存された証明書(x509)を渡す必要があります。

これを達成するための最良の方法または方法は何ですか?.net / C#でこのタスクを実行できる例はたくさんありますが、PowerShellでこのタスクを実行できるものは見つかりません。

これが私のPOSTリクエストコードです。ここでも、ローカルに保存されている証明書 "C:\ code \ cert.crt"をポイントし、Webトランザクション中に渡します。

$url = "https://myUrl/uploadTester"
$data = '{"data": "988309487577839444"}'
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
$b = [System.Text.Encoding]::ASCII.GetBytes($data)
$web = [System.Net.WebRequest]::Create($url)
$web.Method = "POST"
$web.ContentLength = $b.Length
$web.ContentType = "application/x-www-form-urlencoded"
$stream = $web.GetRequestStream()
$stream.Write($b,0,$b.Length)
$stream.close()

$reader = New-Object System.IO.Streamreader -ArgumentList $web.GetResponse().GetResponseStream()
$reader.ReadToEnd()
$reader.Close()

高度なすべての助けをありがとう。

4

1 に答える 1

0

C#をPowerShellに変換するのは非常に簡単です。これを試してみてください:

[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
$cert = [System.Security.Cryptography.X509Certificates.X509Certificate2]::CreateFromCertFile("C:\Users\Andy\Desktop\Test.cer")
$web = [System.Net.WebRequest]::Create($url)
$web.ClientCertificates.Add($Cert)

私はこれをhttp://support.microsoft.com/kb/895971から適応させました

キーはClientCertificatesプロパティのようです。

http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.clientcertificates.aspx

于 2012-04-12T02:35:56.740 に答える