首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure IoT集线器SAS令牌未过期

Azure IoT集线器SAS令牌未过期
EN

Stack Overflow用户
提问于 2017-02-20 13:13:27
回答 1查看 1.8K关注 0票数 1
  • SDK: C#
  • 版本: Microsoft.Azure.Devices.Client 1.2.3
  • 错误再现代码: 让下面的代码运行大约15分钟*,您将看到发送仍然成功,尽管令牌应该已经过期。 变量hostName = ..。变量deviceId = ..。var sasToken = new SharedAccessSignatureBuilder { Key = sharedAccessKey,Target =$“{hostName}/deviceId}”,TimeToLive = TimeSpan.FromMinutes(5) } .ToSignature();var authenticationMethod =新DeviceAuthenticationWithToken(deviceId,sasToken);var connectionString = IotHubConnectionStringBuilder (hostName,authenticationMethod) .ToString();var connectionString=(,);同时(真){ Console.WriteLine($"{DateTime.UtcNow}:Sending");var messageContent = Encoding.UTF8.GetBytes("{}");var message =新消息(MessageContent);等待deviceClient.SendEventAsync(消息);等待Task.Delay(TimeSpan.FromSeconds(10));}

如果我错了,请纠正我,但这是否意味着一个开放的连接永远不会过期?这是谁的错?我会说,IoT集线器应该在令牌过期时关闭连接,对吗?

*在内部,令牌似乎再有效5分钟,因为这就是他们定义的MaxClockSkew。因此,为了节省时间,可以将SharedAccessSignatureBuilder.TimeToLive设置为-4.9分钟,令牌应该在0.1分钟内过期。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-27 06:34:24

这是一个已经报告的错误--目前,如果您使用MQTT,则在设备连接时检查令牌,但是当令牌过期时,设备不会被IoT集线器断开。我和这件事没有任何公开的联系。我刚刚尝试使用AMQP,在SAS过期时得到了一个授权错误,HTTP也是如此。因此,该问题目前只存在于MQTT协议中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42345527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档