C# SharedAccessExpiryTime的最大限制是60分钟吗?

C# SharedAccessExpiryTime的最大限制是60分钟吗?,c#,azure,azure-storage,C#,Azure,Azure Storage,我试图通过下面的代码为容器生成共享访问密钥 string sas = azureContainer.GetSharedAccessSignature (new SharedAccessPolicy () { SharedAccessStartTime = DateTime.UtcNow, SharedAccessExpiryTime = DateTime.UtcNow.AddHours(1), Permissions = SharedAccessPermissions.

我试图通过下面的代码为容器生成共享访问密钥

string sas = azureContainer.GetSharedAccessSignature (new SharedAccessPolicy ()
{
    SharedAccessStartTime =  DateTime.UtcNow,
    SharedAccessExpiryTime = DateTime.UtcNow.AddHours(1),
    Permissions = SharedAccessPermissions.Write | SharedAccessPermissions.Read
});
在这种情况下,共享访问签名可以正常工作。客户端成功地将文件上载到容器上。但是,如果我设置的时间超过1小时(例如2),我在尝试在客户端上传文件时会出现一个异常

服务器无法对请求进行身份验证。确保 授权标头的格式正确,包括签名

类似地,如果我尝试设置它
DateTime.UtcNow.AddMinutes(61)
,我会得到相同的异常。任何小于或等于60分钟的时间都可以


我的问题:共享访问签名的最长时间是60分钟吗?我在任何文档中都没有找到这样的东西

事实上,这是有记录的:

。。。您可以在单个共享访问签名上指定它。在这个 在这种情况下,签名有效的时间间隔限制为 一小时


如果您希望访问时间超过一小时,我建议您改用容器级访问策略(也可以撤销)。

正如我在《从2012年春季发布开始》中指出的那样,1小时的限制已经取消。MSDN文章是。目前,您需要从github中自行拉取并构建v1.7.1库(假设您使用的是.net),因为它尚未作为最新SDK+工具的一部分发布。此版本的库将使用2012-02-12协议版本。

太好了,谢谢。我一定错过了一个小时的部分。最新的协议更新不存在一个小时的限制-请参阅我的答案…警告一句:这对storage emulator不起作用(:。storage emulator仍在较旧的协议版本上。