0

我以这种方式为文件生成 SAS 令牌:

    private string GeFileSASToken(CloudFile file)
    {
        SharedAccessFilePolicy policy = new SharedAccessFilePolicy()
        {
            Permissions = SharedAccessFilePermissions.Read | SharedAccessFilePermissions.Write | SharedAccessFilePermissions.List,
            SharedAccessStartTime = DateTime.Now,
            SharedAccessExpiryTime = DateTime.UtcNow.AddHours(24),
        };
        return file.GetSharedAccessSignature(policy);
    }

如果我在浏览器中打开带有此令牌的文件链接,一切正常并下载文件。但是如果我尝试像这样在 Viewerjs 中使用这个链接:

<iframe src = "http://mydomain/ViewerJS/index.html#blob:https://myazureaccount.file.core.windows.net/myshare/mydirectorypath/myfile?SASTOKEN" width='300' height='300'></iframe>

我看到错误消息:

无法加载 blob:https ://myazureaccount.file.core.windows.net/myshare/mydirectorypath/myfile?SASTOKEN:跨源请求仅支持协议方案:http、data、chrome、chrome-extension、https。

4

1 回答 1

0

您的 C# 代码看起来不错,但我无法重现您发布的错误。也许您可以使用Azure 存储资源管理器生成 SAS 令牌,看看会发生什么。

在此处输入图像描述

更新

如果您的 URL 包含 HTML 特殊字符,您将需要对它们进行 URL 编码,或者只需从已编码的 Azure 存储资源管理器中复制 SAS URL。

在此处输入图像描述

于 2017-10-05T07:08:30.607 回答