Signature Azure Shared Access - Signature ne correspond pas

J'obtiens cette erreur:

<Error>
<Code>AuthenticationFailed</Code>
<Message>
Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature. RequestId:6c3fc9a8-cdf6-4874-a141-10282b709022 Time:2014-07-30T10:48:43.8634735Z
</Message>
<AuthenticationErrorDetail>
Signature did not match. String to sign used was rwl 2014-07-31T04:48:20Z /acoustie/$root 2014-02-14
</AuthenticationErrorDetail>
</Error>

Je reçois quand je créer une sas (Signature d'Accès Partagé) coller les sas à la fin du conteneur uri dans un navigateur. C'est l'adresse complète avec le générés sas:

https://acoustie.blob.core.windows.net/mark?sv=2014-02-14&sr=c&sig=E6w%2B3B8bAXK8Lhvvr62exec5blSxsA62aSWAg7rmX4g%3D&se=2014-07-30T13%3A30%3A14Z&sp=rwl

J'ai DONC écumé et Google, et ont essayé des tas de combinaisons, aussi loin que je peux dire que je fais tout correctement, je sais que je ne suis pas, je ne peux pas la voir...vraiment en espérant que quelqu'un peut aider :-\

Pour être clair, je suis de la génération d'un sas sur un conteneur, pas un spécifique blob et pas sur le conteneur racine. L'accès sur le blob est défini comme Public Blob. Mon objectif final est de permettre simplement écrit dans le récipient avec le sas, tandis que "débogage" j'ai ajouté la plupart des autorisations pour la SharedAccessBlobPolicy.

J'ai essayé d'ajouter un \ à la de début et de fin du nom du conteneur. Pas de changement.

C'est le code que j'utilise pour générer le sas:

    var blobClient = storageAccount.CreateCloudBlobClient();
    //Get a reference to the blob container 
    var container = blobClient.GetContainerReference(containerName);

    //Do not set start time so the sas becomes valid immediately.
    var sasConstraints = new SharedAccessBlobPolicy 
    {
        SharedAccessExpiryTime = DateTime.UtcNow.AddMinutes(30), 
        Permissions = SharedAccessBlobPermissions.Write 
        | SharedAccessBlobPermissions.Read
        | SharedAccessBlobPermissions.List,
    };

    var sasContainerToken = container.GetSharedAccessSignature(sasConstraints);

    //Return the URI string for the container, including the SAS token.
        var sas = string.Format("{0}{1}", container.Uri.AbsoluteUri, sasContainerToken);
        Logger.Debug("SAS: {0}", sas);
        return sas;

Il génère une signature, il a juste ne semble pas être une signature valide.

J'ai essayé différents conteneurs, la modification de la politique d'Accès, avec et sans les heures de départ, l'extension de l'expiration > de 12 heures à partir de maintenant (je suis dans un format UTC+10 fuseau horaire), il ne semble pas à la matière ce que je l'ai changer les résultats de la même "signature ne correspond pas d'erreur".

J'ai même essayé en utilisant une ancienne version de " WindowsAzure.De stockage", de sorte que maintenant, j'ai essayé 4.2 et 4.1. Même essayé de l'uri dans un autre navigateur, ne devrais vraiment pas faire une différence, mais bon...

Toutes les suggestions sont grandement appréciés 🙂

source d'informationauteur wallismark | 2014-07-30