如何从Windows Azure SAS密钥解析作为客户端的到期日期?

时间:2013-09-04 00:09:57

标签: azure azure-storage azure-storage-blobs

我正在尝试检查客户端SAS密钥的到期日期,以便我可以在新密钥到期后请求它。我正在使用Microsoft.WindowsAzure.Storage命名空间(它是azure存储库的2.0版本)。是否有内置的方法或我必须手动解析它?

2 个答案:

答案 0 :(得分:3)

我不相信存储客户端库中有任何特定内容。您应该能够解析URI上的查询字符串并查看signedexpiry中的UTC日期。您可以使用HttpUtility.ParseQueryString()解析查询字符串。

以下是需要考虑的两个注意事项:

  • 此检查不完全准确,因为机器时钟和存储服务时钟之间可能存在时钟漂移。
  • 如果服务器使用共享访问策略(允许编程修改/撤销访问),则无法保证signedexpiry将成为查询字符串的一部分。有关共享访问策略的更多信息here

答案 1 :(得分:1)

大卫的答案对于如何解析到期时间(+1)的问题是正确的。但最终你不应该这样做。有两个更好的选择:

  1. 客户端应尝试访问资源,然后通过请求新的SAS来处理身份验证失败。
  2. 为客户提供一种确定SAS到期时间的方法,然后客户端将跟踪此时间并在到期前的某个时间间隔进行刷新。 http://blogs.msdn.com/b/windowsazurestorage/archive/2012/06/12/introducing-table-sas-shared-access-signature-queue-sas-and-update-to-blob-sas.aspx显示了一个例子。