Azure与Xamarin.Android“您必须登录才能使用此应用程序”

时间:2017-02-17 14:23:06

标签: xamarin.android azure-mobile-services

我最近开始学习我的最后一年项目的移动开发,我正在使用Xamarin.Android和Azure移动服务进行Android应用程序。 我创建了一个测试数据库并在那里创建了一个条目,试图让我的Android应用程序连接到数据库并检索此条目。我这样做是为了了解如何建立连接和检索数据,从那里我将开始正确修改。 这就是我的Model类的样子(请注意,JSON属性的命名与我的DB中的列名完全相同。

using Newtonsoft.Json;

namespace com.parkkl.intro.Models
{
    class TestTable
    {
        public int Id { get; set; }

        [JsonProperty(PropertyName = "UserName")]
        public string UserName { get; set; }
        [JsonProperty(PropertyName = "deleted")]
        public bool Deleted { get; set; }
        [JsonProperty(PropertyName = "version")]
        public string Version { get; set; }
        [JsonProperty(PropertyName = "createdAt")]
        public string Creation { get; set; }
        [JsonProperty(PropertyName = "updatedAt")]
        public string Updated { get; set; }
    }
}

这就是我的活动的样子

using Android.App;
using Microsoft.WindowsAzure.MobileServices;
using Android.OS;
using com.parkkl.intro.Models;
using System.Collections.Generic;
using Android.Widget;

namespace com.parkkl.intro
{
    [Activity(Label = "ParkKL", MainLauncher = false, Icon = "@drawable/icon")]
    public class MainActivity : Activity
    {
        #region Variables
        public static MobileServiceClient client = new MobileServiceClient
            (@"http://parkkl.azurewebsites.net/");
        private IMobileServiceTable<TestTable> test = null;
        private List<TestTable> testItems;
        #endregion

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

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

            test = client.GetTable<TestTable>();

            testItems = new List<TestTable>();

            GetData();

        }

        public async void GetData()
        {
            var collection = await test.Where(user => user.Id == 1).ToCollectionAsync();

            foreach (var item in collection)
            {
                testItems.Add(
                    new TestTable
                    {
                        Id = item.Id,
                        UserName = item.UserName,
                        Deleted = item.Deleted,
                        Version = item.Version,
                        Creation = item.Creation,
                        Updated = item.Updated,
                    });
            }
            var finalItem = collection[0];
            TextView text = (TextView)FindViewById(Resource.Id.TextFromDB);
            text.Append(finalItem.UserName);
        }
    }
}

现在的问题是,每次我尝试部署应用程序时,都会抛出此异常

  

Microsoft.WindowsAzure.MobileServices.MobileServiceInvalidOperationException:   您必须登录才能使用此应用程序

在我的Azure应用服务中,我已禁用所有身份验证,但仍然出现此错误。我想知道问题来自哪里?!我非常感谢你的帮助。

编辑:我想我发现了问题,这是表格本身给出的权限。但是,我仍然找到了一种正确验证我的应用程序的方法

1 个答案:

答案 0 :(得分:0)

查看书籍http://aka.ms/zumobook,了解有关如何处理身份验证的详细信息。