【问题标题】:How can I parse the expiration date from a Windows Azure SAS key as a client?作为客户端,如何从 Windows Azure SAS 密钥解析到期日期?
【发布时间】:2013-09-04 11:13:19
【问题描述】:

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

【问题讨论】:

    标签: azure azure-storage azure-blob-storage


    【解决方案1】:

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

    这里有两个需要考虑的警告:

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

    【讨论】:

      【解决方案2】:

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

      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 显示了这方面的一个示例。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-06
        相关资源
        最近更新 更多