小编Ste*_*ano的帖子

Azure存储:403服务器无法验证请求

我在这里和谷歌搜索,但我找不到解决方案.

使用我的C#代码,我想从Azure存储Blob中读取一个文件.代码(仅6行)在另一个项目(Windows 8.1 Universal App)中运行良好,但在我的新Windows 10 UWP应用程序中运行不佳.

这是我的代码:

CloudStorageAccount storageAccount = CloudStorageAccount.Parse(azureConnectionString);
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("container-name");

CloudBlob b1 = container.GetBlobReference("27.76914.json");
StorageFile file = await ApplicationData.Current.LocalFolder.CreateFileAsync("stefano1.json", CreationCollisionOption.ReplaceExisting);
await b1.DownloadToFileAsync(file);
Run Code Online (Sandbox Code Playgroud)

例外情况:

服务器无法验证请求.确保正确形成Authorization标头的值,包括签名.

使用Fiddler4我在消息403上发现了这个错误:

在HTTP请求'R2t9hKsyXf470HF2LNP8T + M2nci0ddE/ojQ0r4UVjJQ ='中找到的MAC签名与任何计算签名不同

我的尝试:

  1. 该应用程序第一次工作(文件下载).我第二次得到例外.
  2. 如果我更改了请求的文件名:应用程序第一次工作(文件已下载).我第二次得到例外.
  3. 第二天我立即得到同样的例外(第一次运行)
  4. 此外,如果我删除bin和obj文件夹,我收到错误
  5. 如果我创建另一个应用程序并尝试下载相同的文件(与第1点相同),它第一次工作,但不是第二次.
  6. 在控制台应用程序中一切正常.

这是Fiddler4 Raw Request(其中*****是我的Azure存储帐户名):

GET https://*****.blob.core.windows.net/container-name/27.76914.json HTTP/1.1
x-ms-client-request-id: accee7e7-646d-417a-b734-1591cbc16a8d
x-ms-date: Thu, 03 Sep 2015 06:31:37 GMT
x-ms-version: 2015-02-21
User-Agent: WA-Storage/5.0.2 (Windows Runtime)
Authorization: SharedKey *****:R2t9hKsyXf470HF2LNP8T+M2nci0ddE/ojQ0r4UVjJQ=
Host: *****.blob.core.windows.net
If-Modified-Since: Sun, 30 Aug 2015 18:52:41 GMT …
Run Code Online (Sandbox Code Playgroud)

c# azure azure-storage-blobs uwp

10
推荐指数
1
解决办法
7381
查看次数

Xamarin WebView 上的摄像头

我有一个简单的 Xamarin 页面,带有一个调用 WebRTC 测试页面的 WebView:

        _webView = new WebView
        {
            Source = "https://test.webrtc.org/",
            WidthRequest = 1000,
            HeightRequest = 1000
        };

        var stackLayout = new StackLayout()
        {
            Orientation = StackOrientation.Vertical,
            Padding = new Thickness(5, 20, 5, 10),
            Children = { _webView }
        };

        Content = new StackLayout { Children = { stackLayout } };
Run Code Online (Sandbox Code Playgroud)

https://test.webrtc.org/页正常工作在Chrome上相同的Android模拟器,但不要上的WebView工作说“NotAllowedError”。

该应用程序具有所需的权限。以下代码(使用 Plugin.Permissions)返回 true:

var statusCamera = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Camera);
var statusMicrophone = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Microphone);
return statusCamera == PermissionStatus.Granted && statusMicrophone == PermissionStatus.Granted;
Run Code Online (Sandbox Code Playgroud)

怎么了?

谢谢

android webview webrtc xamarin android-permissions

3
推荐指数
1
解决办法
4946
查看次数