[英]Azure SAS Token
我刚刚将 Visual Studio 升级到 2022,发现 Cloud Connector 不再是 VS 的一部分。 我们过去常常从 VS 为我们的物联网设备生成 SAS 令牌,它们采用以下形式:
SharedAccessSignature sr=azure-devices.net%2Fdevices%2F<DeviceID>&sig=<VS sig string>%3D&se=1979665819
我认为'没问题。 我只会用 PowerShell 制作一个。 它看起来不同并且不起作用。 我的设备“意外断开连接”。 我使用了这段代码:
$context = (Get-AzStorageAccount -ResourceGroupName $resourceGroup -AccountName $storageAccount).context
New-AzStorageAccountSASToken -Context $context
-Service Table,Queue
-ResourceType Service,Container,Object
-Permission racwdlup
-ExpiryTime $tenYears
它生成一个如下所示的令牌:
sv=2021-06-08&ss=qt&srt=sco&se=2032-09-29T15%3A28%3A56Z&sp=rwdlacup&sig=<PS sig string>
我想我可以在 VS sig 字符串 go 的位置替换 PS sig 字符串,但这没有用。 将整个 PS SAS 令牌粘贴到设备的 SAS 令牌字段中也不起作用。 不幸的是,我无权访问任何错误消息,只能访问设备在日志中输入的内容: MQTT Disconnected (unexpected)
。 如果我 output MQTT STATUS
它的值为4
,根据手册,这仅表示已disconnected
。
我怀疑我的问题是旧的 VS 令牌是容器级令牌,而 PowerShell 命令生成帐户级令牌。 无论如何要用 PowerShell 或 C# 制作正确的令牌?
原来已经有一个 PowerShell 命令来执行此操作: New-AzIotHubSasToken
New-AzIotHubSasToken -ResourceGroupName "myResourceGroup"
-IotHubName "myIoTHub"
-DeviceId "myDevice"
SharedAccessSignature sr=myIoTHub.azure-devices.net%2Fdevices%2FmyDevice
&sig=<signature>
&se=<epiry>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.