我以这种方式为文件生成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。
答案 0 :(得分:0)
您的C#代码看起来很好,我无法重现您发布的错误。也许您可以使用Azure Storage Explorer生成SAS令牌,看看会发生什么。
<强>更新强>
如果您的网址包含HTML特殊字符,则需要对其进行网址编码,或者只是从已编码的Azure存储资源管理器中复制SAS网址。