public async Task DeviceClient_TokenConnectionDoubleRelease_Ok() { TestDevice testDevice = await TestDevice.GetTestDeviceAsync(DevicePrefix).ConfigureAwait(false); string deviceConnectionString = testDevice.ConnectionString; var config = new Configuration.IoTHub.DeviceConnectionStringParser(deviceConnectionString); string iotHub = config.IoTHub; string deviceId = config.DeviceID; string key = config.SharedAccessKey; SharedAccessSignatureBuilder builder = new SharedAccessSignatureBuilder() { Key = key, TimeToLive = new TimeSpan(0, 10, 0), Target = $"{iotHub}/devices/{WebUtility.UrlEncode(deviceId)}", }; DeviceAuthenticationWithToken auth = new DeviceAuthenticationWithToken(deviceId, builder.ToSignature()); using (DeviceClient deviceClient = DeviceClient.Create(iotHub, auth, Client.TransportType.Amqp_Tcp_Only)) { _log.WriteLine($"Created {nameof(DeviceClient)} ID={TestLogging.IdOf(deviceClient)}"); Console.WriteLine("DeviceClient OpenAsync."); await deviceClient.OpenAsync().ConfigureAwait(false); Console.WriteLine("DeviceClient SendEventAsync."); await deviceClient.SendEventAsync(new Client.Message(Encoding.UTF8.GetBytes("TestMessage"))).ConfigureAwait(false); Console.WriteLine("DeviceClient CloseAsync."); await deviceClient.CloseAsync().ConfigureAwait(false); // First release } // Second release }
static string ttlDay = "<有効期間>"; //日 // デバイスキー //static string deviceKey = "<デバイスキー>"; static void Main(string[] args) { // SASトークンを使用して、HTTPプロトコルで接続するDeviceClientインスタンスを作成 var authMethod = new DeviceAuthenticationWithToken(deviceId, CreateSASToken()); deviceClient = DeviceClient.Create(iotHubUri, authMethod, TransportType.Http1); /* * // SASトークンを使用して、AMQPプロトコルで接続するDeviceClientインスタンスを作成 * var authMethod = new DeviceAuthenticationWithToken(deviceId, CreateSASToken()); * deviceClient = DeviceClient.Create(iotHubUri, authMethod); * * // SASトークンを使用して、MQTTプロトコルで接続するDeviceClientインスタンスを作成 * var authMethod = new DeviceAuthenticationWithToken(deviceId, CreateSASToken()); * deviceClient = DeviceClient.Create(iotHubUri, authMethod, TransportType.Mqtt); * * // デバイスキーを使用して、AMQPプロトコルで接続するDeviceClientインスタンスを作成 * //deviceClient = DeviceClient.Create(iotHubUri, new DeviceAuthenticationWithRegistrySymmetricKey(deviceId, deviceKey)); */ // メッセージの送信処理 SendDeviceToCloudMessagesAsync(); Console.ReadLine(); }
public async Task DeviceClient_TokenConnectionDoubleRelease_Ok() { using TestDevice testDevice = await TestDevice.GetTestDeviceAsync(Logger, DevicePrefix).ConfigureAwait(false); string deviceConnectionString = testDevice.ConnectionString; var config = new TestConfiguration.IoTHub.ConnectionStringParser(deviceConnectionString); string iotHub = config.IotHubHostName; string deviceId = config.DeviceID; string key = config.SharedAccessKey; var builder = new SharedAccessSignatureBuilder() { Key = key, TimeToLive = new TimeSpan(0, 10, 0), Target = $"{iotHub}/devices/{WebUtility.UrlEncode(deviceId)}", }; var auth = new DeviceAuthenticationWithToken(deviceId, builder.ToSignature()); using var deviceClient = DeviceClient.Create(iotHub, auth, Client.TransportType.Amqp_Tcp_Only); Logger.Trace($"{deviceId}: Created {nameof(DeviceClient)} ID={TestLogger.IdOf(deviceClient)}"); Logger.Trace($"{deviceId}: DeviceClient OpenAsync."); await deviceClient.OpenAsync().ConfigureAwait(false); Logger.Trace($"{deviceId}: DeviceClient SendEventAsync."); using var testMessage = new Client.Message(Encoding.UTF8.GetBytes("TestMessage")); await deviceClient.SendEventAsync(testMessage).ConfigureAwait(false); Logger.Trace($"{deviceId}: DeviceClient CloseAsync."); await deviceClient.CloseAsync().ConfigureAwait(false); }
//private static TransportType s_transportType = TransportType.Mqtt; //private static TransportType s_transportType = TransportType.Http1; //private static TransportType s_transportType = TransportType.Amqp_WebSocket_Only; //private static TransportType s_transportType = TransportType.Mqtt_WebSocket_Only; static int Main(string[] args) { string deviceID = "PNPdevice1"; string hostName = "Bo-IoTHub.azure-devices.net"; string endpoint = hostName + "/devices/" + deviceID; string key = "kFHUUwpwdsiTW3BtnEM15TLvUyo4v+kuwseHYqN/r/g="; string deviceLevelKey = "hRToHlK3K3IF+SvuZPm4A15rknkzFsu0TI5rRH5s0ck="; string policyName = "iothubowner"; string policyNamedevice = "device"; string SAStoken = GenerateSasToken.generateSasToken(endpoint, deviceLevelKey, policyNamedevice); DeviceAuthenticationWithToken DAT = new DeviceAuthenticationWithToken(deviceID, SAStoken); DeviceClient deviceClient = DeviceClient.Create(hostName, DAT); if (deviceClient == null) { Console.WriteLine("Failed to create DeviceClient!"); return(1); } var sample = new MessageSample(deviceClient); sample.RunSampleAsync().GetAwaiter().GetResult(); Console.WriteLine("Done.\n"); return(0); }
public void Test_Create_DeviceIdentity_WithAuthMethod_ShouldCreateDeviceClient() { string token = TokenHelper.CreateSasToken(IotHubHostName); IIdentity identity = new DeviceIdentity(IotHubHostName, DeviceId); var authenticationMethod = new DeviceAuthenticationWithToken(DeviceId, token); var transportSettings = new ITransportSettings[] { new MqttTransportSettings(TransportType.Mqtt_Tcp_Only) }; IClient client = new ClientProvider().Create(identity, authenticationMethod, transportSettings); Assert.NotNull(client); Assert.True(client is DeviceClientWrapper); }
public void DeviceClient_Create_DeviceScope_SharedAccessSignature_Test() { string hostName = "acme.azure-devices.net"; string password = "******"; var sasRule = new SharedAccessSignatureBuilder() { Key = password, Target = hostName + "/devices/" + "device1" }; var authMethod = new DeviceAuthenticationWithToken("device1", sasRule.ToSignature()); var deviceClient = AmqpTransportHandler.Create(hostName, authMethod); Assert.IsNotNull(deviceClient.Connection); Assert.IsNotNull(deviceClient.Connection.ConnectionString); }
public async Task DeviceClient_TokenConnectionDoubleRelease_Ok() { string deviceConnectionString = null; try { deviceConnectionString = Configuration.IoTHub.DeviceConnectionString; } catch (InvalidOperationException) { /* Invalid configuration. */ } if (string.IsNullOrEmpty(deviceConnectionString)) { Console.WriteLine("Device configuration not found. Test inconclusive."); return; } var config = new Configuration.IoTHub.DeviceConnectionStringParser(deviceConnectionString); string iotHub = config.IoTHub; string deviceId = config.DeviceID; string key = config.SharedAccessKey; SharedAccessSignatureBuilder builder = new SharedAccessSignatureBuilder() { Key = "Lfc0z9UTENYRt0vEoFQjXeUkQV3ifk5f3qFN5N7vFlY=", TimeToLive = new TimeSpan(0, 10, 0), Target = $"{iotHub}/devices/{WebUtility.UrlEncode(deviceId)}", }; DeviceAuthenticationWithToken auth = new DeviceAuthenticationWithToken(deviceId, builder.ToSignature()); using (DeviceClient iotClient = DeviceClient.Create(iotHub, auth, Client.TransportType.Amqp_Tcp_Only)) { Console.WriteLine("DeviceClient OpenAsync."); await iotClient.OpenAsync(); Console.WriteLine("DeviceClient SendEventAsync."); await iotClient.SendEventAsync(new Client.Message(Encoding.UTF8.GetBytes("TestMessage"))); Console.WriteLine("DeviceClient CloseAsync."); await iotClient.CloseAsync(); // First release } // Second release }
public void DeviceClientIotHubConnectionStringBuilderTest() { string connectionString = "HostName=acme.azure-devices.net;SharedAccessKeyName=AllAccessKey;DeviceId=device1;SharedAccessKey=dGVzdFN0cmluZzE="; var iotHubConnectionStringBuilder = IotHubConnectionStringBuilder.Create(connectionString); Assert.IsNotNull(iotHubConnectionStringBuilder.HostName); Assert.IsNotNull(iotHubConnectionStringBuilder.DeviceId); Assert.IsNull(iotHubConnectionStringBuilder.GatewayHostName); Assert.IsNotNull(iotHubConnectionStringBuilder.AuthenticationMethod); Assert.IsNotNull(iotHubConnectionStringBuilder.SharedAccessKey); Assert.IsNotNull(iotHubConnectionStringBuilder.SharedAccessKeyName); Assert.IsNull(iotHubConnectionStringBuilder.SharedAccessSignature); Assert.IsTrue(iotHubConnectionStringBuilder.AuthenticationMethod is DeviceAuthenticationWithSharedAccessPolicyKey); connectionString = "HostName=acme.azure-devices.net;GatewayHostName=test;SharedAccessKeyName=AllAccessKey;DeviceId=device1;SharedAccessKey=dGVzdFN0cmluZzE="; iotHubConnectionStringBuilder = IotHubConnectionStringBuilder.Create(connectionString); Assert.IsNotNull(iotHubConnectionStringBuilder.HostName); Assert.IsNotNull(iotHubConnectionStringBuilder.DeviceId); Assert.IsNotNull(iotHubConnectionStringBuilder.GatewayHostName); Assert.IsNotNull(iotHubConnectionStringBuilder.AuthenticationMethod); Assert.IsNotNull(iotHubConnectionStringBuilder.SharedAccessKey); Assert.IsNotNull(iotHubConnectionStringBuilder.SharedAccessKeyName); Assert.IsNull(iotHubConnectionStringBuilder.SharedAccessSignature); Assert.IsTrue(iotHubConnectionStringBuilder.AuthenticationMethod is DeviceAuthenticationWithSharedAccessPolicyKey); connectionString = "HostName=acme.azure-devices.net;CredentialType=SharedAccessSignature;DeviceId=device1;SharedAccessSignature=SharedAccessSignature sr=dh%3a%2f%2facme.azure-devices.net&sig=dGVzdFN0cmluZzU=&se=87824124985&skn=AllAccessKey"; iotHubConnectionStringBuilder = IotHubConnectionStringBuilder.Create(connectionString); Assert.IsNotNull(iotHubConnectionStringBuilder.HostName); Assert.IsNotNull(iotHubConnectionStringBuilder.DeviceId); Assert.IsNull(iotHubConnectionStringBuilder.GatewayHostName); Assert.IsNotNull(iotHubConnectionStringBuilder.AuthenticationMethod); Assert.IsNull(iotHubConnectionStringBuilder.SharedAccessKey); Assert.IsNotNull(iotHubConnectionStringBuilder.SharedAccessSignature); Assert.IsTrue(iotHubConnectionStringBuilder.AuthenticationMethod is DeviceAuthenticationWithToken); connectionString = "HostName=acme.azure-devices.net;CredentialScope=Device;DeviceId=device1;SharedAccessKey=dGVzdFN0cmluZzE="; iotHubConnectionStringBuilder = IotHubConnectionStringBuilder.Create(connectionString); Assert.IsNotNull(iotHubConnectionStringBuilder.HostName); Assert.IsNotNull(iotHubConnectionStringBuilder.DeviceId); Assert.IsNull(iotHubConnectionStringBuilder.GatewayHostName); Assert.IsNotNull(iotHubConnectionStringBuilder.AuthenticationMethod); Assert.IsNotNull(iotHubConnectionStringBuilder.SharedAccessKey); Assert.IsNull(iotHubConnectionStringBuilder.SharedAccessKeyName); Assert.IsNull(iotHubConnectionStringBuilder.SharedAccessSignature); Assert.IsTrue(iotHubConnectionStringBuilder.AuthenticationMethod is DeviceAuthenticationWithRegistrySymmetricKey); connectionString = "HostName=acme.azure-devices.net;CredentialScope=Device;DeviceId=device1;SharedAccessSignature=SharedAccessSignature sr=dh%3a%2f%2facme.azure-devices.net&sig=dGVzdFN0cmluZzU=&se=87824124985&skn=AllAccessKey"; iotHubConnectionStringBuilder = IotHubConnectionStringBuilder.Create(connectionString); Assert.IsNotNull(iotHubConnectionStringBuilder.HostName); Assert.IsNotNull(iotHubConnectionStringBuilder.DeviceId); Assert.IsNull(iotHubConnectionStringBuilder.GatewayHostName); Assert.IsNotNull(iotHubConnectionStringBuilder.AuthenticationMethod); Assert.IsNull(iotHubConnectionStringBuilder.SharedAccessKey); Assert.IsNull(iotHubConnectionStringBuilder.SharedAccessKeyName); Assert.IsNotNull(iotHubConnectionStringBuilder.SharedAccessSignature); Assert.IsTrue(iotHubConnectionStringBuilder.AuthenticationMethod is DeviceAuthenticationWithToken); try { iotHubConnectionStringBuilder.HostName = "adshgfvyregferuehfiuehr"; Assert.Fail("Expected FormatException"); } catch (FormatException) { } iotHubConnectionStringBuilder.HostName = "acme.azure-devices.net"; iotHubConnectionStringBuilder.AuthenticationMethod = new DeviceAuthenticationWithRegistrySymmetricKey("Device1", "dGVzdFN0cmluZzE="); Assert.IsTrue(iotHubConnectionStringBuilder.AuthenticationMethod is DeviceAuthenticationWithRegistrySymmetricKey); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessSignature == null); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessKey == "dGVzdFN0cmluZzE="); Assert.IsTrue(iotHubConnectionStringBuilder.DeviceId == "Device1"); iotHubConnectionStringBuilder.AuthenticationMethod = new DeviceAuthenticationWithToken("Device2", "SharedAccessSignature sr=dh%3a%2f%2facme.azure-devices.net&sig=dGVzdFN0cmluZzU=&se=87824124985&skn=AllAccessKey"); Assert.IsTrue(iotHubConnectionStringBuilder.AuthenticationMethod is DeviceAuthenticationWithToken); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessSignature == "SharedAccessSignature sr=dh%3a%2f%2facme.azure-devices.net&sig=dGVzdFN0cmluZzU=&se=87824124985&skn=AllAccessKey"); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessKey == null); Assert.IsTrue(iotHubConnectionStringBuilder.DeviceId == "Device2"); iotHubConnectionStringBuilder.AuthenticationMethod = new DeviceAuthenticationWithSharedAccessPolicyKey("Device3", "AllAccess", "dGVzdFN0cmluZzI="); Assert.IsTrue(iotHubConnectionStringBuilder.AuthenticationMethod is DeviceAuthenticationWithSharedAccessPolicyKey); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessSignature == null); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessKey == "dGVzdFN0cmluZzI="); Assert.IsTrue(iotHubConnectionStringBuilder.DeviceId == "Device3"); iotHubConnectionStringBuilder.AuthenticationMethod = new DeviceAuthenticationWithToken("Device4", "SharedAccessSignature sr=dh%3a%2f%2facme.azure-devices.net&sig=dGVzdFN0cmluZzU=&se=87824124985&skn=AllAccessKey"); Assert.IsTrue(iotHubConnectionStringBuilder.AuthenticationMethod is DeviceAuthenticationWithToken); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessSignature == "SharedAccessSignature sr=dh%3a%2f%2facme.azure-devices.net&sig=dGVzdFN0cmluZzU=&se=87824124985&skn=AllAccessKey"); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessKey == null); Assert.IsTrue(iotHubConnectionStringBuilder.DeviceId == "Device4"); IAuthenticationMethod authMethod = AuthenticationMethodFactory.CreateAuthenticationWithToken("Device5", "SharedAccessSignature sr=dh%3a%2f%2facme.azure-devices.net&sig=dGVzdFN0cmluZzU=&se=87824124985&skn=AllAccessKey"); iotHubConnectionStringBuilder = IotHubConnectionStringBuilder.Create("acme1.azure-devices.net", authMethod); Assert.IsTrue(iotHubConnectionStringBuilder.AuthenticationMethod is DeviceAuthenticationWithToken); Assert.IsTrue(iotHubConnectionStringBuilder.HostName == "acme1.azure-devices.net"); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessSignature == "SharedAccessSignature sr=dh%3a%2f%2facme.azure-devices.net&sig=dGVzdFN0cmluZzU=&se=87824124985&skn=AllAccessKey"); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessKey == null); Assert.IsTrue(iotHubConnectionStringBuilder.DeviceId == "Device5"); authMethod = new DeviceAuthenticationWithSharedAccessPolicyKey("Device3", "AllAccess", "dGVzdFN0cmluZzI="); iotHubConnectionStringBuilder = IotHubConnectionStringBuilder.Create("acme2.azure-devices.net", authMethod); Assert.IsTrue(iotHubConnectionStringBuilder.AuthenticationMethod is DeviceAuthenticationWithSharedAccessPolicyKey); Assert.IsTrue(iotHubConnectionStringBuilder.HostName == "acme2.azure-devices.net"); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessSignature == null); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessKey == "dGVzdFN0cmluZzI="); Assert.IsTrue(iotHubConnectionStringBuilder.DeviceId == "Device3"); authMethod = new DeviceAuthenticationWithToken("Device2", "SharedAccessSignature sr=dh%3a%2f%2facme.azure-devices.net&sig=dGVzdFN0cmluZzU=&se=87824124985&skn=AllAccessKey"); iotHubConnectionStringBuilder = IotHubConnectionStringBuilder.Create("acme3.azure-devices.net", authMethod); Assert.IsTrue(iotHubConnectionStringBuilder.AuthenticationMethod is DeviceAuthenticationWithToken); Assert.IsTrue(iotHubConnectionStringBuilder.HostName == "acme3.azure-devices.net"); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessSignature == "SharedAccessSignature sr=dh%3a%2f%2facme.azure-devices.net&sig=dGVzdFN0cmluZzU=&se=87824124985&skn=AllAccessKey"); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessKey == null); Assert.IsTrue(iotHubConnectionStringBuilder.DeviceId == "Device2"); authMethod = new DeviceAuthenticationWithRegistrySymmetricKey("Device1", "dGVzdFN0cmluZzE="); iotHubConnectionStringBuilder = IotHubConnectionStringBuilder.Create("acme4.azure-devices.net", authMethod); Assert.IsTrue(iotHubConnectionStringBuilder.AuthenticationMethod is DeviceAuthenticationWithRegistrySymmetricKey); Assert.IsTrue(iotHubConnectionStringBuilder.HostName == "acme4.azure-devices.net"); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessSignature == null); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessKey == "dGVzdFN0cmluZzE="); Assert.IsTrue(iotHubConnectionStringBuilder.DeviceId == "Device1"); string hostName = "acme.azure-devices.net"; string gatewayHostname = "gateway.acme.azure-devices.net"; IAuthenticationMethod authenticationMethod = new DeviceAuthenticationWithRegistrySymmetricKey("Device1", "dGVzdFN0cmluZzE="); iotHubConnectionStringBuilder = IotHubConnectionStringBuilder.Create(hostName, gatewayHostname, authenticationMethod); Assert.AreEqual(gatewayHostname, iotHubConnectionStringBuilder.GatewayHostName); Assert.AreEqual(hostName, iotHubConnectionStringBuilder.HostName); Assert.IsTrue(iotHubConnectionStringBuilder.AuthenticationMethod is DeviceAuthenticationWithRegistrySymmetricKey); hostName = "acme.azure-devices.net"; authenticationMethod = new DeviceAuthenticationWithRegistrySymmetricKey("Device1", "dGVzdFN0cmluZzE="); iotHubConnectionStringBuilder = IotHubConnectionStringBuilder.Create(hostName, authenticationMethod); Assert.AreEqual(hostName, iotHubConnectionStringBuilder.HostName); Assert.IsTrue(iotHubConnectionStringBuilder.AuthenticationMethod is DeviceAuthenticationWithRegistrySymmetricKey); Assert.IsNull(iotHubConnectionStringBuilder.GatewayHostName); }
public void DeviceClientIotHubConnectionStringBuilderTest() { string connectionString = "HostName=acme.azure-devices.net;SharedAccessKeyName=AllAccessKey;DeviceId=device1;SharedAccessKey=CQN2K33r45/0WeIjpqmErV5EIvX8JZrozt3NEHCEkG8="; var iotHubConnectionStringBuilder = IotHubConnectionStringBuilder.Create(connectionString); Assert.IsNotNull(iotHubConnectionStringBuilder.HostName); Assert.IsNotNull(iotHubConnectionStringBuilder.DeviceId); Assert.IsNull(iotHubConnectionStringBuilder.GatewayHostName); Assert.IsNotNull(iotHubConnectionStringBuilder.AuthenticationMethod); Assert.IsNotNull(iotHubConnectionStringBuilder.SharedAccessKey); Assert.IsNotNull(iotHubConnectionStringBuilder.SharedAccessKeyName); Assert.IsNull(iotHubConnectionStringBuilder.SharedAccessSignature); Assert.IsTrue(iotHubConnectionStringBuilder.AuthenticationMethod is DeviceAuthenticationWithSharedAccessPolicyKey); connectionString = "HostName=acme.azure-devices.net;GatewayHostName=test;SharedAccessKeyName=AllAccessKey;DeviceId=device1;SharedAccessKey=CQN2K33r45/0WeIjpqmErV5EIvX8JZrozt3NEHCEkG8="; iotHubConnectionStringBuilder = IotHubConnectionStringBuilder.Create(connectionString); Assert.IsNotNull(iotHubConnectionStringBuilder.HostName); Assert.IsNotNull(iotHubConnectionStringBuilder.DeviceId); Assert.IsNotNull(iotHubConnectionStringBuilder.GatewayHostName); Assert.IsNotNull(iotHubConnectionStringBuilder.AuthenticationMethod); Assert.IsNotNull(iotHubConnectionStringBuilder.SharedAccessKey); Assert.IsNotNull(iotHubConnectionStringBuilder.SharedAccessKeyName); Assert.IsNull(iotHubConnectionStringBuilder.SharedAccessSignature); Assert.IsTrue(iotHubConnectionStringBuilder.AuthenticationMethod is DeviceAuthenticationWithSharedAccessPolicyKey); connectionString = "HostName=acme.azure-devices.net;CredentialType=SharedAccessSignature;DeviceId=device1;SharedAccessSignature=SharedAccessSignature sr=dh%3a%2f%2facme.azure-devices.net&sig=poifbMLdBGtCJknubF2FW6FLn5vND5k1IKoeQ%2bONgkE%3d&se=87824124985&skn=AllAccessKey"; iotHubConnectionStringBuilder = IotHubConnectionStringBuilder.Create(connectionString); Assert.IsNotNull(iotHubConnectionStringBuilder.HostName); Assert.IsNotNull(iotHubConnectionStringBuilder.DeviceId); Assert.IsNull(iotHubConnectionStringBuilder.GatewayHostName); Assert.IsNotNull(iotHubConnectionStringBuilder.AuthenticationMethod); Assert.IsNull(iotHubConnectionStringBuilder.SharedAccessKey); Assert.IsNotNull(iotHubConnectionStringBuilder.SharedAccessSignature); Assert.IsTrue(iotHubConnectionStringBuilder.AuthenticationMethod is DeviceAuthenticationWithToken); connectionString = "HostName=acme.azure-devices.net;CredentialScope=Device;DeviceId=device1;SharedAccessKey=CQN2K33r45/0WeIjpqmErV5EIvX8JZrozt3NEHCEkG8="; iotHubConnectionStringBuilder = IotHubConnectionStringBuilder.Create(connectionString); Assert.IsNotNull(iotHubConnectionStringBuilder.HostName); Assert.IsNotNull(iotHubConnectionStringBuilder.DeviceId); Assert.IsNull(iotHubConnectionStringBuilder.GatewayHostName); Assert.IsNotNull(iotHubConnectionStringBuilder.AuthenticationMethod); Assert.IsNotNull(iotHubConnectionStringBuilder.SharedAccessKey); Assert.IsNull(iotHubConnectionStringBuilder.SharedAccessKeyName); Assert.IsNull(iotHubConnectionStringBuilder.SharedAccessSignature); Assert.IsTrue(iotHubConnectionStringBuilder.AuthenticationMethod is DeviceAuthenticationWithRegistrySymmetricKey); connectionString = "HostName=acme.azure-devices.net;CredentialScope=Device;DeviceId=device1;SharedAccessSignature=SharedAccessSignature sr=dh%3a%2f%2facme.azure-devices.net&sig=poifbMLdBGtCJknubF2FW6FLn5vND5k1IKoeQ%2bONgkE%3d&se=87824124985&skn=AllAccessKey"; iotHubConnectionStringBuilder = IotHubConnectionStringBuilder.Create(connectionString); Assert.IsNotNull(iotHubConnectionStringBuilder.HostName); Assert.IsNotNull(iotHubConnectionStringBuilder.DeviceId); Assert.IsNull(iotHubConnectionStringBuilder.GatewayHostName); Assert.IsNotNull(iotHubConnectionStringBuilder.AuthenticationMethod); Assert.IsNull(iotHubConnectionStringBuilder.SharedAccessKey); Assert.IsNull(iotHubConnectionStringBuilder.SharedAccessKeyName); Assert.IsNotNull(iotHubConnectionStringBuilder.SharedAccessSignature); Assert.IsTrue(iotHubConnectionStringBuilder.AuthenticationMethod is DeviceAuthenticationWithToken); try { iotHubConnectionStringBuilder.HostName = "adshgfvyregferuehfiuehr"; Assert.Fail("Expected FormatException"); } catch (FormatException) { } iotHubConnectionStringBuilder.HostName = "acme.azure-devices.net"; iotHubConnectionStringBuilder.AuthenticationMethod = new DeviceAuthenticationWithRegistrySymmetricKey("Device1", "CQN2K33r45/0WeIjpqmErV5EIvX8JZrozt3NEHCEkG8="); Assert.IsTrue(iotHubConnectionStringBuilder.AuthenticationMethod is DeviceAuthenticationWithRegistrySymmetricKey); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessSignature == null); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessKey == "CQN2K33r45/0WeIjpqmErV5EIvX8JZrozt3NEHCEkG8="); Assert.IsTrue(iotHubConnectionStringBuilder.DeviceId == "Device1"); iotHubConnectionStringBuilder.AuthenticationMethod = new DeviceAuthenticationWithToken("Device2", "SharedAccessSignature sr=dh%3a%2f%2facme.azure-devices.net&sig=poifbMLdBGtCJknubF2FW6FLn5vND5k1IKoeQ%2bONgkE%3d&se=87824124985&skn=AllAccessKey"); Assert.IsTrue(iotHubConnectionStringBuilder.AuthenticationMethod is DeviceAuthenticationWithToken); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessSignature == "SharedAccessSignature sr=dh%3a%2f%2facme.azure-devices.net&sig=poifbMLdBGtCJknubF2FW6FLn5vND5k1IKoeQ%2bONgkE%3d&se=87824124985&skn=AllAccessKey"); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessKey == null); Assert.IsTrue(iotHubConnectionStringBuilder.DeviceId == "Device2"); iotHubConnectionStringBuilder.AuthenticationMethod = new DeviceAuthenticationWithSharedAccessPolicyKey("Device3", "AllAccess", "KQN2K33r45/0WeIjpqmErV5EIvX8JZrozt3NEHCEkG8="); Assert.IsTrue(iotHubConnectionStringBuilder.AuthenticationMethod is DeviceAuthenticationWithSharedAccessPolicyKey); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessSignature == null); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessKey == "KQN2K33r45/0WeIjpqmErV5EIvX8JZrozt3NEHCEkG8="); Assert.IsTrue(iotHubConnectionStringBuilder.DeviceId == "Device3"); iotHubConnectionStringBuilder.AuthenticationMethod = new DeviceAuthenticationWithToken("Device4", "SharedAccessSignature sr=dh%3a%2f%2facme.azure-devices.net&sig=poifbMLdBGtCJknubF2FW6FLn5vND5k1IKoeQ%2bONgkE%3d&se=87824124985&skn=AllAccessKey"); Assert.IsTrue(iotHubConnectionStringBuilder.AuthenticationMethod is DeviceAuthenticationWithToken); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessSignature == "SharedAccessSignature sr=dh%3a%2f%2facme.azure-devices.net&sig=poifbMLdBGtCJknubF2FW6FLn5vND5k1IKoeQ%2bONgkE%3d&se=87824124985&skn=AllAccessKey"); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessKey == null); Assert.IsTrue(iotHubConnectionStringBuilder.DeviceId == "Device4"); IAuthenticationMethod authMethod = AuthenticationMethodFactory.CreateAuthenticationWithToken("Device5", "SharedAccessSignature sr=dh%3a%2f%2facme.azure-devices.net&sig=poifbMLdBGtCJknubF2FW6FLn5vND5k1IKoeQ%2bONgkE%3d&se=87824124985&skn=AllAccessKey"); iotHubConnectionStringBuilder = IotHubConnectionStringBuilder.Create("acme1.azure-devices.net", authMethod); Assert.IsTrue(iotHubConnectionStringBuilder.AuthenticationMethod is DeviceAuthenticationWithToken); Assert.IsTrue(iotHubConnectionStringBuilder.HostName == "acme1.azure-devices.net"); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessSignature == "SharedAccessSignature sr=dh%3a%2f%2facme.azure-devices.net&sig=poifbMLdBGtCJknubF2FW6FLn5vND5k1IKoeQ%2bONgkE%3d&se=87824124985&skn=AllAccessKey"); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessKey == null); Assert.IsTrue(iotHubConnectionStringBuilder.DeviceId == "Device5"); authMethod = new DeviceAuthenticationWithSharedAccessPolicyKey("Device3", "AllAccess", "KQN2K33r45/0WeIjpqmErV5EIvX8JZrozt3NEHCEkG8="); iotHubConnectionStringBuilder = IotHubConnectionStringBuilder.Create("acme2.azure-devices.net", authMethod); Assert.IsTrue(iotHubConnectionStringBuilder.AuthenticationMethod is DeviceAuthenticationWithSharedAccessPolicyKey); Assert.IsTrue(iotHubConnectionStringBuilder.HostName == "acme2.azure-devices.net"); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessSignature == null); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessKey == "KQN2K33r45/0WeIjpqmErV5EIvX8JZrozt3NEHCEkG8="); Assert.IsTrue(iotHubConnectionStringBuilder.DeviceId == "Device3"); authMethod = new DeviceAuthenticationWithToken("Device2", "SharedAccessSignature sr=dh%3a%2f%2facme.azure-devices.net&sig=poifbMLdBGtCJknubF2FW6FLn5vND5k1IKoeQ%2bONgkE%3d&se=87824124985&skn=AllAccessKey"); iotHubConnectionStringBuilder = IotHubConnectionStringBuilder.Create("acme3.azure-devices.net", authMethod); Assert.IsTrue(iotHubConnectionStringBuilder.AuthenticationMethod is DeviceAuthenticationWithToken); Assert.IsTrue(iotHubConnectionStringBuilder.HostName == "acme3.azure-devices.net"); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessSignature == "SharedAccessSignature sr=dh%3a%2f%2facme.azure-devices.net&sig=poifbMLdBGtCJknubF2FW6FLn5vND5k1IKoeQ%2bONgkE%3d&se=87824124985&skn=AllAccessKey"); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessKey == null); Assert.IsTrue(iotHubConnectionStringBuilder.DeviceId == "Device2"); authMethod = new DeviceAuthenticationWithRegistrySymmetricKey("Device1", "CQN2K33r45/0WeIjpqmErV5EIvX8JZrozt3NEHCEkG8="); iotHubConnectionStringBuilder = IotHubConnectionStringBuilder.Create("acme4.azure-devices.net", authMethod); Assert.IsTrue(iotHubConnectionStringBuilder.AuthenticationMethod is DeviceAuthenticationWithRegistrySymmetricKey); Assert.IsTrue(iotHubConnectionStringBuilder.HostName == "acme4.azure-devices.net"); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessSignature == null); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessKey == "CQN2K33r45/0WeIjpqmErV5EIvX8JZrozt3NEHCEkG8="); Assert.IsTrue(iotHubConnectionStringBuilder.DeviceId == "Device1"); }
public void DeviceClientIotHubConnectionStringBuilderTest() { const string hostName = "acme.azure-devices.net"; const string gatewayHostName = "gateway.acme.azure-devices.net"; const string transparentGatewayHostName = "test"; const string deviceId = "device1"; const string deviceIdSplChar = "device1-.+%_#*?!(),=@;$'"; const string sharedAccessKey = "dGVzdFN0cmluZzE="; const string sharedAccessKeyName = "AllAccessKey"; const string credentialScope = "Device"; const string credentialType = "SharedAccessSignature"; const string sharedAccessSignature = "SharedAccessSignature sr=dh%3a%2f%2facme.azure-devices.net&sig=dGVzdFN0cmluZzU=&se=87824124985&skn=AllAccessKey"; string connectionString = $"HostName={hostName};SharedAccessKeyName={sharedAccessKeyName};DeviceId={deviceIdSplChar};SharedAccessKey={sharedAccessKey}"; var iotHubConnectionStringBuilder = IotHubConnectionStringBuilder.Create(connectionString); iotHubConnectionStringBuilder.HostName.Should().Be(hostName); iotHubConnectionStringBuilder.DeviceId.Should().Be(deviceIdSplChar); iotHubConnectionStringBuilder.GatewayHostName.Should().BeNull(); iotHubConnectionStringBuilder.SharedAccessKey.Should().Be(sharedAccessKey); iotHubConnectionStringBuilder.SharedAccessKeyName.Should().Be(sharedAccessKeyName); iotHubConnectionStringBuilder.SharedAccessSignature.Should().BeNull(); iotHubConnectionStringBuilder.AuthenticationMethod.Should().NotBeNull(); iotHubConnectionStringBuilder.AuthenticationMethod.Should().BeOfType <DeviceAuthenticationWithSharedAccessPolicyKey>(); connectionString = $"HostName={hostName};GatewayHostName={transparentGatewayHostName};SharedAccessKeyName={sharedAccessKeyName};DeviceId={deviceId};SharedAccessKey={sharedAccessKey}"; iotHubConnectionStringBuilder = IotHubConnectionStringBuilder.Create(connectionString); iotHubConnectionStringBuilder.HostName.Should().Be(hostName); iotHubConnectionStringBuilder.DeviceId.Should().Be(deviceId); iotHubConnectionStringBuilder.GatewayHostName.Should().Be(transparentGatewayHostName); iotHubConnectionStringBuilder.SharedAccessKey.Should().Be(sharedAccessKey); iotHubConnectionStringBuilder.SharedAccessKeyName.Should().Be(sharedAccessKeyName); iotHubConnectionStringBuilder.SharedAccessSignature.Should().BeNull(); iotHubConnectionStringBuilder.AuthenticationMethod.Should().NotBeNull(); iotHubConnectionStringBuilder.AuthenticationMethod.Should().BeOfType <DeviceAuthenticationWithSharedAccessPolicyKey>(); connectionString = $"HostName={hostName};CredentialType={credentialType};DeviceId={deviceId};SharedAccessSignature={sharedAccessSignature}"; iotHubConnectionStringBuilder = IotHubConnectionStringBuilder.Create(connectionString); iotHubConnectionStringBuilder.HostName.Should().Be(hostName); iotHubConnectionStringBuilder.DeviceId.Should().Be(deviceId); iotHubConnectionStringBuilder.GatewayHostName.Should().BeNull(); iotHubConnectionStringBuilder.SharedAccessKey.Should().BeNull(); iotHubConnectionStringBuilder.SharedAccessSignature.Should().Be(sharedAccessSignature); iotHubConnectionStringBuilder.AuthenticationMethod.Should().NotBeNull(); iotHubConnectionStringBuilder.AuthenticationMethod.Should().BeOfType <DeviceAuthenticationWithToken>(); connectionString = $"HostName={hostName};CredentialScope={credentialScope};DeviceId={deviceId};SharedAccessKey={sharedAccessKey}"; iotHubConnectionStringBuilder = IotHubConnectionStringBuilder.Create(connectionString); iotHubConnectionStringBuilder.HostName.Should().Be(hostName); iotHubConnectionStringBuilder.DeviceId.Should().Be(deviceId); iotHubConnectionStringBuilder.GatewayHostName.Should().BeNull(); iotHubConnectionStringBuilder.SharedAccessKey.Should().Be(sharedAccessKey); iotHubConnectionStringBuilder.SharedAccessKeyName.Should().BeNull(); iotHubConnectionStringBuilder.SharedAccessSignature.Should().BeNull(); iotHubConnectionStringBuilder.AuthenticationMethod.Should().NotBeNull(); iotHubConnectionStringBuilder.AuthenticationMethod.Should().BeOfType <DeviceAuthenticationWithRegistrySymmetricKey>(); connectionString = $"HostName={hostName};CredentialScope={credentialScope};DeviceId={deviceId};SharedAccessSignature={sharedAccessSignature}"; iotHubConnectionStringBuilder = IotHubConnectionStringBuilder.Create(connectionString); iotHubConnectionStringBuilder.HostName.Should().Be(hostName); iotHubConnectionStringBuilder.DeviceId.Should().Be(deviceId); iotHubConnectionStringBuilder.GatewayHostName.Should().BeNull(); iotHubConnectionStringBuilder.SharedAccessKey.Should().BeNull(); iotHubConnectionStringBuilder.SharedAccessKeyName.Should().BeNull(); iotHubConnectionStringBuilder.SharedAccessSignature.Should().Be(sharedAccessSignature); iotHubConnectionStringBuilder.AuthenticationMethod.Should().NotBeNull(); iotHubConnectionStringBuilder.AuthenticationMethod.Should().BeOfType <DeviceAuthenticationWithToken>(); iotHubConnectionStringBuilder.HostName = transparentGatewayHostName; iotHubConnectionStringBuilder.AuthenticationMethod = new DeviceAuthenticationWithRegistrySymmetricKey(deviceIdSplChar, sharedAccessKey); iotHubConnectionStringBuilder.HostName.Should().Be(transparentGatewayHostName); iotHubConnectionStringBuilder.DeviceId.Should().Be(deviceIdSplChar); iotHubConnectionStringBuilder.SharedAccessKey.Should().Be(sharedAccessKey); iotHubConnectionStringBuilder.SharedAccessSignature.Should().BeNull(); iotHubConnectionStringBuilder.AuthenticationMethod.Should().NotBeNull(); iotHubConnectionStringBuilder.AuthenticationMethod.Should().BeOfType <DeviceAuthenticationWithRegistrySymmetricKey>(); iotHubConnectionStringBuilder.HostName = hostName; iotHubConnectionStringBuilder.AuthenticationMethod = new DeviceAuthenticationWithRegistrySymmetricKey(deviceIdSplChar, sharedAccessKey); iotHubConnectionStringBuilder.DeviceId.Should().Be(deviceIdSplChar); iotHubConnectionStringBuilder.SharedAccessKey.Should().Be(sharedAccessKey); iotHubConnectionStringBuilder.SharedAccessSignature.Should().BeNull(); iotHubConnectionStringBuilder.AuthenticationMethod.Should().NotBeNull(); iotHubConnectionStringBuilder.AuthenticationMethod.Should().BeOfType <DeviceAuthenticationWithRegistrySymmetricKey>(); iotHubConnectionStringBuilder.AuthenticationMethod = new DeviceAuthenticationWithToken(deviceId, sharedAccessSignature); iotHubConnectionStringBuilder.DeviceId.Should().Be(deviceId); iotHubConnectionStringBuilder.SharedAccessKey.Should().BeNull(); iotHubConnectionStringBuilder.SharedAccessSignature.Should().Be(sharedAccessSignature); iotHubConnectionStringBuilder.AuthenticationMethod.Should().NotBeNull(); iotHubConnectionStringBuilder.AuthenticationMethod.Should().BeOfType <DeviceAuthenticationWithToken>(); iotHubConnectionStringBuilder.AuthenticationMethod = new DeviceAuthenticationWithSharedAccessPolicyKey(deviceId, sharedAccessKeyName, sharedAccessKey); iotHubConnectionStringBuilder.DeviceId.Should().Be(deviceId); iotHubConnectionStringBuilder.SharedAccessKey.Should().Be(sharedAccessKey); iotHubConnectionStringBuilder.SharedAccessSignature.Should().BeNull(); iotHubConnectionStringBuilder.AuthenticationMethod.Should().NotBeNull(); iotHubConnectionStringBuilder.AuthenticationMethod.Should().BeOfType <DeviceAuthenticationWithSharedAccessPolicyKey>(); iotHubConnectionStringBuilder.AuthenticationMethod = new DeviceAuthenticationWithToken(deviceId, sharedAccessSignature); iotHubConnectionStringBuilder.DeviceId.Should().Be(deviceId); iotHubConnectionStringBuilder.SharedAccessKey.Should().BeNull(); iotHubConnectionStringBuilder.SharedAccessSignature.Should().Be(sharedAccessSignature); iotHubConnectionStringBuilder.AuthenticationMethod.Should().NotBeNull(); iotHubConnectionStringBuilder.AuthenticationMethod.Should().BeOfType <DeviceAuthenticationWithToken>(); IAuthenticationMethod authMethod = AuthenticationMethodFactory.CreateAuthenticationWithToken(deviceId, sharedAccessSignature); iotHubConnectionStringBuilder = IotHubConnectionStringBuilder.Create(hostName, authMethod); iotHubConnectionStringBuilder.HostName.Should().Be(hostName); iotHubConnectionStringBuilder.DeviceId.Should().Be(deviceId); iotHubConnectionStringBuilder.SharedAccessKey.Should().BeNull(); iotHubConnectionStringBuilder.SharedAccessSignature.Should().Be(sharedAccessSignature); iotHubConnectionStringBuilder.AuthenticationMethod.Should().NotBeNull(); iotHubConnectionStringBuilder.AuthenticationMethod.Should().BeOfType <DeviceAuthenticationWithToken>(); authMethod = new DeviceAuthenticationWithSharedAccessPolicyKey(deviceId, sharedAccessKeyName, sharedAccessKey); iotHubConnectionStringBuilder = IotHubConnectionStringBuilder.Create(hostName, authMethod); iotHubConnectionStringBuilder.HostName.Should().Be(hostName); iotHubConnectionStringBuilder.DeviceId.Should().Be(deviceId); iotHubConnectionStringBuilder.SharedAccessKey.Should().Be(sharedAccessKey); iotHubConnectionStringBuilder.SharedAccessSignature.Should().BeNull(); iotHubConnectionStringBuilder.AuthenticationMethod.Should().NotBeNull(); iotHubConnectionStringBuilder.AuthenticationMethod.Should().BeOfType <DeviceAuthenticationWithSharedAccessPolicyKey>(); authMethod = new DeviceAuthenticationWithToken(deviceId, sharedAccessSignature); iotHubConnectionStringBuilder = IotHubConnectionStringBuilder.Create(hostName, authMethod); iotHubConnectionStringBuilder.HostName.Should().Be(hostName); iotHubConnectionStringBuilder.DeviceId.Should().Be(deviceId); iotHubConnectionStringBuilder.SharedAccessKey.Should().BeNull(); iotHubConnectionStringBuilder.SharedAccessSignature.Should().Be(sharedAccessSignature); iotHubConnectionStringBuilder.AuthenticationMethod.Should().NotBeNull(); iotHubConnectionStringBuilder.AuthenticationMethod.Should().BeOfType <DeviceAuthenticationWithToken>(); authMethod = new DeviceAuthenticationWithRegistrySymmetricKey(deviceIdSplChar, sharedAccessKey); iotHubConnectionStringBuilder = IotHubConnectionStringBuilder.Create(hostName, authMethod); iotHubConnectionStringBuilder.HostName.Should().Be(hostName); iotHubConnectionStringBuilder.DeviceId.Should().Be(deviceIdSplChar); iotHubConnectionStringBuilder.SharedAccessKey.Should().Be(sharedAccessKey); iotHubConnectionStringBuilder.SharedAccessSignature.Should().BeNull(); iotHubConnectionStringBuilder.AuthenticationMethod.Should().NotBeNull(); iotHubConnectionStringBuilder.AuthenticationMethod.Should().BeOfType <DeviceAuthenticationWithRegistrySymmetricKey>(); IAuthenticationMethod authenticationMethod = new DeviceAuthenticationWithRegistrySymmetricKey(deviceIdSplChar, sharedAccessKey); iotHubConnectionStringBuilder = IotHubConnectionStringBuilder.Create(hostName, gatewayHostName, authenticationMethod); iotHubConnectionStringBuilder.HostName.Should().Be(hostName); iotHubConnectionStringBuilder.GatewayHostName.Should().Be(gatewayHostName); iotHubConnectionStringBuilder.SharedAccessKey.Should().Be(sharedAccessKey); iotHubConnectionStringBuilder.SharedAccessSignature.Should().BeNull(); iotHubConnectionStringBuilder.AuthenticationMethod.Should().NotBeNull(); iotHubConnectionStringBuilder.AuthenticationMethod.Should().BeOfType <DeviceAuthenticationWithRegistrySymmetricKey>(); authenticationMethod = new DeviceAuthenticationWithRegistrySymmetricKey(deviceIdSplChar, sharedAccessKey); iotHubConnectionStringBuilder = IotHubConnectionStringBuilder.Create(hostName, authenticationMethod); iotHubConnectionStringBuilder.HostName.Should().Be(hostName); iotHubConnectionStringBuilder.GatewayHostName.Should().BeNull(); iotHubConnectionStringBuilder.SharedAccessKey.Should().Be(sharedAccessKey); iotHubConnectionStringBuilder.SharedAccessSignature.Should().BeNull(); iotHubConnectionStringBuilder.AuthenticationMethod.Should().NotBeNull(); iotHubConnectionStringBuilder.AuthenticationMethod.Should().BeOfType <DeviceAuthenticationWithRegistrySymmetricKey>(); }
public StartupTask() { IAuthenticationMethod auth = new DeviceAuthenticationWithToken(DeviceId, SasToken); _deviceClient = DeviceClient.Create(Hostname, auth); }
private async Task <DeviceClient> ResolveDeviceClient(string deviceId, string sasToken = null, DateTime?tokenExpiration = null) { try { var deviceClient = await cache.GetOrCreateAsync <DeviceClient>(deviceId, async (cacheEntry) => { IAuthenticationMethod auth = null; if (string.IsNullOrEmpty(sasToken)) { auth = new DeviceAuthenticationWithSharedAccessPolicyKey(deviceId, this.serverOptions.AccessPolicyName, this.serverOptions.AccessPolicyKey); } else { auth = new DeviceAuthenticationWithToken(deviceId, sasToken); } var newDeviceClient = DeviceClient.Create( this.serverOptions.IoTHubHostName, auth, new ITransportSettings[] { new AmqpTransportSettings(TransportType.Amqp_Tcp_Only) { AmqpConnectionPoolSettings = new AmqpConnectionPoolSettings() { Pooling = true, MaxPoolSize = (uint)this.serverOptions.MaxPoolSize, } } } ); newDeviceClient.OperationTimeoutInMilliseconds = (uint)this.serverOptions.DeviceOperationTimeout; await newDeviceClient.OpenAsync(); if (this.serverOptions.DirectMethodEnabled) { await newDeviceClient.SetMethodDefaultHandlerAsync(this.serverOptions.DirectMethodCallback, deviceId); } if (!tokenExpiration.HasValue) { tokenExpiration = DateTime.UtcNow.AddMinutes(this.serverOptions.DefaultDeviceCacheInMinutes); } cacheEntry.SetAbsoluteExpiration(tokenExpiration.Value); cacheEntry.RegisterPostEvictionCallback(this.CacheEntryRemoved, deviceId); this.logger.LogInformation($"Connection to device {deviceId} has been established, valid until {tokenExpiration.Value.ToString()}"); registeredDevices.AddDevice(deviceId); return(newDeviceClient); }); return(deviceClient); } catch (Exception ex) { this.logger.LogError(ex, $"Could not connect device {deviceId}"); } return(null); }