C# 使用.Net创建azure IOT中心设备

C# 使用.Net创建azure IOT中心设备,c#,azure-iot-hub,C#,Azure Iot Hub,我想为客户创建物联网中心。我已经使用RESTAPI创建了IOT Hub,但无法找到在其中创建设备的方法。我正在使用RESTAPI创建物联网中心。它被创建,但当我试图创建设备时,我得到了未经授权的异常。我正在使用。您需要使用IoT Hub SAS令牌来创建如下设备: PUT /devices/device2?api-version=2016-11-14 HTTP/1.1 Host: [IOT-HUB-NAME].azure-devices.net Authorization: SharedAcce

我想为客户创建物联网中心。我已经使用RESTAPI创建了IOT Hub,但无法找到在其中创建设备的方法。我正在使用RESTAPI创建物联网中心。它被创建,但当我试图创建设备时,我得到了未经授权的异常。我正在使用。

您需要使用IoT Hub SAS令牌来创建如下设备:

PUT /devices/device2?api-version=2016-11-14 HTTP/1.1
Host: [IOT-HUB-NAME].azure-devices.net
Authorization: SharedAccessSignature sr=[IOT-HUB-NAME].azure-devices.net&sig=[SIG]&se=1557553675&skn=iothubowner
Content-Type: application/json

{deviceId:"device2"}

您可以从以下位置获取IoT Hub SAS令牌。

使用
注册表管理器
从SDK
Microsoft.Azure.Devices
获取IoT Hub SAS令牌,并使用
注册表写入从Azure门户的共享访问策略选项卡获取连接字符串:

var registryManager = RegistryManager.CreateFromConnectionString(connectionString);
var device = new Microsoft.Azure.Devices.Device(name);
var deviceWithKeys = await registryManager.AddDeviceAsync(device);

您的问题缺少足够的信息,任何人都无法帮助您。你用哪一种?关于异常失败的原因,是否有任何详细信息?我没有提供任何用于身份验证的密钥。它会自动批准吗?您链接到的用于SymmetricKey身份验证的文档称“如果未指定[密钥],Iot Hub将为设备生成两个密钥,默认密钥长度为32字节”。但我认为您必须在正文中添加适当的Json,告诉它这就是您想要做的;我已经添加了这个JSONY,您可能需要添加类似于
authentication=“symmetricKey”
的东西,任何人都有一个实际工作的C代码片段,其中包含所有使用device explorer生成的SAS令牌工作的组件。下面是一个示例: