1

誰かがここで私を助けてくれることを本当に望んでいます。最近展開した Cloudstack と対話する vb.net で小さなプログラムを作成しました。

現時点では、API 呼び出しが 401 無許可としてすぐに拒否されるため、署名が適切に生成されていないことは明らかです。

リクエストに署名するための署名を生成する方法を説明するドキュメントから少し抜粋しました...ここで確認できます:http://www.x85.co.uk/generatesig.txt

オンラインで見つけたサンプル関数を使用してSHA1ハッシュを取得しましたが、このコードのどこにも秘密鍵がないため、問題です...

Function getSHA1Hash(ByVal strToHash As String) As String
Dim sha1Obj As New Security.Cryptography.SHA1CryptoServiceProvider
Dim bytesToHash() As Byte = System.Text.Encoding.ASCII.GetBytes(strToHash)
bytesToHash = sha1Obj.ComputeHash(bytesToHash)
Dim strResult As String = ""
For Each b As Byte In bytesToHash
    strResult += b.ToString("x2")
Next
Return strResult
End Function

これを行う方法がわからないため、URLエンコードビットも含めていません。

どんな助けでも感謝します。

みんなありがとう!

4

1 に答える 1

0

CloudStack .NET SDK NuGet パッケージを試す

あなたのために署名を計算し、VB.NET で動作します

C# での大まかな使用例を次に示します。うまくいけば、それを VB に翻訳できます。

var cloudStackClient = new Client(csApiUrl, csApiKey, csApiSecret);

CloudStack.SDK.APIRequest req = new APIRequest("deleteTemplate");
req.Parameters.Add("id", id);
cloudStackClient.SendRequest(req);
于 2014-01-03T10:06:22.700 に答える