C#:IoT AWS v4签名请求

时间:2018-03-19 19:18:03

标签: c# amazon-web-services aws-sdk

我正在尝试签署一份请求,但未成功发送给AWS。在网上浏览了几个小时后,我找不到一段可行的代码。

我想在C#中预先签署IoT网址。我在Node中找到了极其简单的代码:

'use strict';

const v4 = require('aws-signature-v4');
const crypto = require('crypto');

exports.handler = (event, context, callback) => {
    const url = v4.createPresignedURL(
        'GET',
        process.env.IOT_ENDPOINT_HOST.toLowerCase(),
        '/mqtt',
        'iotdevicegateway',
        crypto.createHash('sha256').update('', 'utf8').digest('hex'),
        {
            'key': process.env.IOT_ACCESS_KEY,
            'secret': process.env.IOT_SECRET_KEY,
            'protocol': 'wss',
            'region': process.env.IOT_AWS_REGION,
        }
    );

    const response = {
        statusCode: 200,
        body: JSON.stringify({ url: url }),
    };

    callback(null, response);
}

如何在C#中完成?我在SDK上找不到它。我找到的是这种方法:https://github.com/aws/aws-sdk-net/blob/master/sdk/src/Core/Amazon.Runtime/Internal/Auth/AWS4Signer.cs

但它表示它仅供内部使用,不应使用。

关于如何实现它的任何指导?

由于

1 个答案:

答案 0 :(得分:0)

我过去曾使用sample here取得了巨大的成功。您需要稍微修改它以使其适用于您的用例。

希望有所帮助!