欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

(一)CloudStack生成Signature調(diào)用API(C#)

一:前言

創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)、陸河網(wǎng)絡(luò)推廣、微信小程序開(kāi)發(fā)、陸河網(wǎng)絡(luò)營(yíng)銷、陸河企業(yè)策劃、陸河品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們大的嘉獎(jiǎng);創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供陸河建站搭建服務(wù),24小時(shí)服務(wù)熱線:18980820575,官方網(wǎng)址:chinadenli.net

擼主剛開(kāi)始嘗試使用CloudStack API時(shí); 查閱相關(guān)資料,網(wǎng)上基本是官方的一個(gè)版本。大多都是復(fù)制內(nèi)容;沒(méi)有任何幫助。且擼主是在 .NET 的框架下操作;資料更少,目前經(jīng)過(guò)學(xué)習(xí)摸索 系統(tǒng)基本處于穩(wěn)定,故將前期遇到的問(wèn)題整理一二,望能對(duì)大家有所幫助。

/***************該段-官話********************/

CloudStack API 也是基于 Web Service,可以使用任何一種支持 HTTP 調(diào)用的語(yǔ)言(例如 Java,PHP)編寫代碼。

調(diào)用代碼(caller)首先需要在管理服務(wù)器進(jìn)行認(rèn)證。目前 CloudStack 采用兩種認(rèn)證方式:

Session 認(rèn)證:通過(guò) login API,獲得一個(gè) JSESSIONID cookie 和一個(gè) SESSIONKEY token。

API Key 認(rèn)證。

/***************該段-官話********************/

二:擼主采用 API Key 進(jìn)行認(rèn)證:

1、生成Signature 之前,我們得先擁有[API Key] & [Security Key],該文主要記錄Signature 加密實(shí)現(xiàn),如何生成這兩個(gè)Key 擼主 便不再贅述。

2、官方提供生成Signature 的語(yǔ)言是Perl:地址如下,可自行觀摩:

https://github.com/snumano/CloudStack-API/blob/master/generate-url.pl

3、進(jìn)而擼主又找到了 Python 版本:地址如下:

https://github.com/jasonhancock/cloudstack-pythonclient/blob/master/CloudStack/BaseClient.py

4、當(dāng)然也少不了Java 版本的:CloudStack 開(kāi)源包里應(yīng)該能找到,在此擼主分享一篇帖文:

http://blog.csdn.net/rishengcsdn/article/details/38387721

三:使用C# 生成 Signature,有了以上資料,寫起C# 版本的,自是得心應(yīng)手,當(dāng)然也有些許差異,幾個(gè)問(wèn)題需要注意:

1、[ApiKey] & [SecretKey] 字符串較長(zhǎng),切勿出錯(cuò)

2、參數(shù)加密時(shí)以小些形式

3、參數(shù)加密時(shí),需要對(duì)其進(jìn)行排序(以參數(shù)第一個(gè)字母為準(zhǔn))

4、加密前統(tǒng)一編碼:UTF8

5、加密方式為:HmacSha1

6、加密后信息確認(rèn)編碼為: UTF8

7、組合字符串

四:代碼實(shí)現(xiàn)(僅供參考,測(cè)試代碼)

如:獲取云主機(jī)的狀態(tài)信息

參數(shù)信息:

調(diào)用地址:“http://*.*.*.*:**/client/api?”

API 名稱:“listVirtualMachines”

參 數(shù):

details=stats 狀態(tài)

account=admin 操作人賬號(hào)

id=**** 虛擬主機(jī)編號(hào)

API KEY:“******************”

SecretKey: “****************”

///<summary>生成CloudStackSignature可執(zhí)行Url ///生成CloudStack可執(zhí)行Url ///</summary> ///<returns></returns> publicstringGetSignatureApiUrl() { /*調(diào)用CloudStackAPI生成Signature并組合完整URL *1、根據(jù)配置獲取參數(shù) *2、有效性驗(yàn)證 *3、參數(shù)信息排序 *4、統(tǒng)一編碼UTF-8 *5、使用HmacSha1編碼加密 *6、加密后內(nèi)容再次轉(zhuǎn)UTF-8 *7、組合 */ varApiKey="*********************"; varSecretKey="******************"; //CloudStackAPI調(diào)用地址 varDeveloperServer="http://*.*.*.*:**/client/api?"; //ApiKey統(tǒng)一編碼 Encodingenc=newUTF8Encoding(); stringencodedApiKey=HttpUtility.UrlEncode(ApiKey,enc); stringencodedSecreKey=HttpUtility.UrlEncode(SecretKey,enc); //參數(shù),傳遞過(guò)來(lái) List<string>Args=newList<string>(); Args.Add("command="+Command) Args.Add("details=stats"); Args.Add("account=admin"); Args.Add("id=****"); //有效性驗(yàn)證 //略 varoldparmsString=string.Join("&",Args); Args.Add("apikey="+ApiKey) //參數(shù)信息進(jìn)行排序 Args=Args.OrderBy(o=>o).ToList(); //參數(shù)拼接 varparamsString=string.Join("&",Args); //對(duì)執(zhí)行信息進(jìn)行加密 stringsignature=newHashEncryptHelp().HmacSha1(encodedSecreKey,paramsString.Tolower()); //加密信息轉(zhuǎn)UTF-8 stringencodedSignature=HttpUtility.UrlEncode(signature,enc); //組合URL字符 stringurl=DeveloperServer+oldparmsString+"&apikey="+encodedApiKey+"&signature="+encodedSignature; returnurl; }

輸出:http://*.*.*.*:**/client/api?command=listVirtualMachines&details=stats&account=admin&id=****&apikey=****&signature=****

測(cè)試執(zhí)行:成功.

分享名稱:(一)CloudStack生成Signature調(diào)用API(C#)
分享路徑:http://chinadenli.net/article8/cheeop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、商城網(wǎng)站、網(wǎng)站收錄、搜索引擎優(yōu)化、服務(wù)器托管、品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管