2016-04-01 2 views
0

SAS Token Error IN Xamarin Studio IMAGE403 Аутентификация Ошибки при доступе Windows Azure Storage Таблица В Xamarin

Я пытался использовать Xamarin студию в VS2k15 для андроид базы данных приложения development.The я использую это лазурная таблица хранения.

поэтому для использования azure storage table в xamarin вам нужна SAS (подпись общего доступа) вместо ключа доступа.

Я сгенерировал токен SAS для хранилища таблиц, но это исключение (как показано на рисунке) выбрано вместо вставки данных.

enter image description here

HTTP 403 означает, что соединение работает и принимает запрос, но он терпит неудачу в выполнении работы.

Так что, пожалуйста, помогите мне. P.S. Значок sas правильно сгенерирован (не может использоваться по соображениям безопасности).

моя основная деятельность .cs

using Microsoft.WindowsAzure.Storage; 

использованием Microsoft.WindowsAzure.Storage.Table;

имен App6 { [Деятельность (Ярлык = "Docapp", MainLauncher = правда, Icon = "@ вытяжке/значок")] класс MainActivity общественности: активность {

protected override void OnCreate(Bundle bundle) 
    { 
     base.OnCreate(bundle); 

     // Set our view from the "main" layout resource 
     SetContentView(Resource.Layout.Main); 

     // Get our button from the layout resource, 
     // and attach an event to it 
     Button button = FindViewById<Button>(Resource.Id.MyButton); 

     button.Click += async delegate 
     { 
      appfix temp = new appfix("public", "1001", "2123212", "djnsjd", DateTime.Today, DateTime.UtcNow, "snjdn", 1233, "JDdjvn", "dsjd", 1212, 0); 
      string d = await insert(temp); 
      TextView tv = FindViewById<TextView>(Resource.Id.textView1); 
      tv.Text = d; 
     }; 


    } 




    private async Task<string> insert(appfix temp) 
    { 
     string sas = "https://supapp.table.core.windows.net/request?sv=2015-04-05&tn=request&sig=FlXvYraZKJIz6YQaRpzVBPORPLsyRKMZHQiAVBPkYP0%3D&spr=http%2Chttp&se=2016-04-01T15%3A44%3A49Z&sp=raud"; 

     string dec; 
     try 
     { 
      // CloudStorageAccount storageAccount = CloudStorageAccount.Parse(key); 

      // CloudTableClient tableClient = storageAccount.CreateCloudTableClient(); 


      CloudTable table = new CloudTable(new Uri(sas)); 
       //tableClient.GetTableReference(tableName); 

      TableOperation insertEntity = TableOperation.InsertOrReplace(temp); 

      await table.ExecuteAsync(insertEntity); 

      dec = "DONE"; 
     } 

     catch(Exception e) 
     { 
      dec = e.ToString(); 
     } 

     return dec; 
    } 

мой appfix класс

using Microsoft.WindowsAzure.Storage; 

using System.Threading.Tasks;

имен App6 { класс appfix общественности: TableEntity { общественная строка app_no {получить; задавать; } public string app_with {get; задавать; } public DateTime app_date {get; задавать; } public DateTime app_time {get; задавать; } public string patient_name {get; задавать; } public int ser_no {get; задавать; } public string patient_rank {get; задавать; } public string patient_aliment {get; задавать; } public int room_no {get; задавать; } public int app_status {get; задавать; }

public appfix() 
    { 

    } 
    public appfix(string partionkey,string rowkey,string App_no, string App_with, DateTime App_date, DateTime App_time, string Patient_name, int Ser_no, string Patient_rank, string Patient_aliment, int Room_no, int App_status) 
    { 
     this.PartitionKey = partionkey; 
     this.RowKey = rowkey; 
     this.app_no = App_no; 
     this.app_with = App_with; 
     this.app_date = App_date; 
     this.app_time = App_time; 
     this.patient_name = Patient_name; 
     this.ser_no = Ser_no; 
     this.patient_rank = Patient_rank; 
     this.patient_aliment = Patient_aliment; 
     this.room_no = Room_no; 
     this.app_status = App_status; 
    } 


} 

}

мой SAS Токен

https://supapp.table.core.windows.net/request?sv=2015-04-05&tn=request&sig=FlXvYraZKJIz6YQaRpzVBPORPLsyRKMZHQiAVBPkYP0%3D&spr=http%2Chttp&se=2016-04-01T15%3A44%3A49Z&sp=raud 
+0

Как вы создавали токен SAS для таблицы? Вы можете использовать токен SAS ... просто замените имя учетной записи и имя таблицы другими значениями. –

+0

Я сгенерировал SAS TOKEN из лазурной силовой решетки. $ Контекст = New-AzureStorageContext -StorageAccountName "хуг" -StorageAccountKey "XYZ" запрос -Context $ контекст Get-AzureStorageTable $ в настоящее время = Get-Date New-AzureStorageTableSASToken -Name запрос -Permission Radu -ExpiryTime $ now.AddDays (1,0) -Context $ context -FullUri, вот как я создал свой токен SAS. – Sam

+0

Благодарим вас за обмен информацией. Я попытался создать токен SAS для таблицы с использованием кода PowerShell, который вы использовали выше, и с помощью этого я смог успешно выполнять операции. 2 вещи, которые я хочу вам проверить: 1) ключ учетной записи, который вы использовали для создания токена SAS, и 2) время на устройстве. Оба они могут вызвать ошибку 403. –

ответ

0

Solved Issue IMG

Этот вопрос был решен, благодаря Gaurav Мантри.

Сначала я обновил свою оболочку Azure Power с 1.2.3 до 1.3.0 и обновил WindowsAzure Storage с 4.4.1 до 5.0.3 предварительного просмотра.

Почему я использовал 5.0.3, потому что Monoandroid 6.0 поддерживает 5.0.3.

У SAS Token был параметр SPR от 1.2.3 окна силовой оболочки azure, но в 1.3.0 параметр spr не добавлен.

Следовательно, ошибка была решена.

 Смежные вопросы

  • Нет связанных вопросов^_^