Exemple #1
0
        public static int Main(string[] args)
        {
            ReadJsonConfiguration();

            var db = new DataStorage();
            var secureConnection    = db.Read("ConnectionString");
            DevicePortalInfoModel o = JsonConvert.DeserializeObject <DevicePortalInfoModel>(secureConnection);
            DeviceAuthenticationWithRegistrySymmetricKey auth = (DeviceAuthenticationWithRegistrySymmetricKey)o.Auth;
            string          iotHub = (string)o.Host;
            DPSDeviceClient sample = null;

            Console.WriteLine($"Connecting to IoT Hub with AuthenticationMethod:{iotHub}");
            sample = new DPSDeviceClient(iotHub, auth);

            sample.StartAsync().GetAwaiter().GetResult();

            Console.WriteLine("Enter any key to exit");
            Console.ReadLine();
            return(0);
        }
Exemple #2
0
        public static async Task <DevicePortalInfoModel> ProvisionDeviceAsync(DeviceModel device)
        {
            try
            {
                using (var security = new SecurityProviderSymmetricKey(device.RegistrationId, device.PrimaryKey, device.SecondaryKey))
                {
                    using (var transport = new ProvisioningTransportHandlerAmqp(TransportFallbackType.TcpOnly))
                    {
                        ProvisioningDeviceClient provClient =
                            ProvisioningDeviceClient.Create(GlobalDeviceEndpoint, device.ID_Scope, security, transport);
                        var result = await provClient.RegisterAsync();

                        if (result.Status != ProvisioningRegistrationStatusType.Assigned)
                        {
                            return(null);
                        }
                        IAuthenticationMethod auth = GetAuthenticationMethod(result, security);
                        var host    = $"{result.AssignedHub}";
                        var builder = IotHubConnectionStringBuilder.Create(host, auth);
                        device.PrimaryKey   = security.GetPrimaryKey();
                        device.SecondaryKey = security.GetSecondaryKey();
                        var o = new DevicePortalInfoModel
                        {
                            Host             = host,
                            Auth             = auth,
                            Device           = device,
                            ConnectionString = builder.ToString()
                        };
                        return(o);
                    }
                }
            }
            catch (Exception exp)
            {
                throw exp;
            }
        }