问题描述
使用 .Net SDK for IoT,有没有办法设置 OPTION_SAS_TOKEN_LIFETIME (https://github.com/Azure/azure-iot-sdk-c/blob/master/iothub_client/inc/iothub_client_options.h#L36)?
var sasBuilder = new SharedAccessSignatureBuilder();
sasBuilder.Key = "jzaOR************F2uT1c=";
sasBuilder.Target = "k****y.azure-devices.net" + "/devices/" + "dotNet";
sasBuilder.TimetoLive = TimeSpan.FromMinutes(120);
var auth = new DeviceAuthenticationWithToken("dotNet",sasBuilder.ToSignature());
deviceClient = DeviceClient.Create("k****y.azure-devices.net",auth,TransportType.Mqtt);
但这将假设我拥有 SAS 令牌到期。
我也看到可以在C SDK中设置:(https://github.com/Azure/azure-iot-sdk-c/issues/1182)
解决方法
查看github中的相关线程:https://github.com/Azure/azure-iot-sdk-csharp/issues/1818
"默认情况下,如果您使用连接字符串初始化设备客户端,它将生成有效期为一小时的 sas 令牌。要覆盖此行为,您可以实现抽象类 DeviceAuthenticationWithTokenRefresh
并将其传递给用于初始化的设备客户端 Create
方法。"
谢谢。