Hello
I implemented communication between a device and a IotHub.
I use Microsoft.Azure.devices.client 1.42.0 & Microsoft.Azure.devices.Provisioning.client 1.19.3 SDK
Context
OS, version, SKU and CPU architecture used: Windows 10 Enterprise | Intel(R) Core(TM) i7
Application's .NET Target Framework : net6.0
Device: Laptop
Description of the issue
I started from the following example. : provisioning/device/samples/getting started/X509Sample/ProvisioningDeviceClientSample.cs.
When uploading a file, we start by doing this:
Unfortunately, if we use the example: provisioning/device/samples/getting started/X509Sample/ProvisioningDeviceClientSample.cs. The call to the GetFileUploadSasUriAsync method generates an exception IotHubUnauthorizedAccess (even though the device was successfully provisioned through DPS on the IoT Hub).
After several searches, I came across other examples that allow the file upload to work, and this with authentication via x509 certificate.
It seems that you just need to replace the following lines:
With:
Definition of GetCertificateByThumbprint
It took me some time to get this to work, and I believe that updating the example could greatly help future users. I'm also interested in understanding the exact difference between these two calls...
...and why this difference in the call only impacts the file upload functionality.
Hello I implemented communication between a device and a IotHub. I use Microsoft.Azure.devices.client 1.42.0 & Microsoft.Azure.devices.Provisioning.client 1.19.3 SDK
Context
Description of the issue
I started from the following example. : provisioning/device/samples/getting started/X509Sample/ProvisioningDeviceClientSample.cs.
When uploading a file, we start by doing this:![image](https://github.com/Azure/azure-iot-sdk-csharp/assets/133333201/ba54ad8d-d162-4e13-91a8-0f53d425cdd1)
Unfortunately, if we use the example: provisioning/device/samples/getting started/X509Sample/ProvisioningDeviceClientSample.cs. The call to the GetFileUploadSasUriAsync method generates an exception IotHubUnauthorizedAccess (even though the device was successfully provisioned through DPS on the IoT Hub).
After several searches, I came across other examples that allow the file upload to work, and this with authentication via x509 certificate.
It seems that you just need to replace the following lines:
With:
![image](https://github.com/Azure/azure-iot-sdk-csharp/assets/133333201/22cda9c6-c591-4fdd-b850-343109be3185)
Definition of GetCertificateByThumbprint![image](https://github.com/Azure/azure-iot-sdk-csharp/assets/133333201/8a76fc33-6ba9-4e97-a387-bf8a174d739d)
It took me some time to get this to work, and I believe that updating the example could greatly help future users. I'm also interested in understanding the exact difference between these two calls...
...and why this difference in the call only impacts the file upload functionality.