the creation of a Azure file or blob storage instance failes if doing so via StorageFactory.Blobs.FromConnectionString
Reason:
The factory uses FluentStorage.ConnectionString.StorageConnectionString internally to parse the connection string. For each property value the method UrlDecode is called by the Parse method. This makes a lot of sense to be able to pass special characters in passwords.
The Azure account key is Base64 encoded, though. If it contains + characters, those get replaced by spaces, other characters might also get replaced falsely. Therefore the Azure account key must not be tampered with.
One workaround would be to store the account key urlencoded in the connection string in the application configuration - not very user friendly, its base64 already...
The StorageConnectionString on the other hand side has no knowledge if the secret key is urlencoded or base64 encoded... not sure how to solve this.
Maybe it would make sense to mention the url-encoding for passwords in the documentation.
the creation of a Azure file or blob storage instance failes if doing so via StorageFactory.Blobs.FromConnectionString
Reason: The factory uses FluentStorage.ConnectionString.StorageConnectionString internally to parse the connection string. For each property value the method UrlDecode is called by the Parse method. This makes a lot of sense to be able to pass special characters in passwords.
The Azure account key is Base64 encoded, though. If it contains + characters, those get replaced by spaces, other characters might also get replaced falsely. Therefore the Azure account key must not be tampered with.
One workaround would be to store the account key urlencoded in the connection string in the application configuration - not very user friendly, its base64 already...
The StorageConnectionString on the other hand side has no knowledge if the secret key is urlencoded or base64 encoded... not sure how to solve this.
Maybe it would make sense to mention the url-encoding for passwords in the documentation.