locked
API Live Connect + удостоверения Azure mobile services, проблемма при подключении к оболачной службе RRS feed

  • Вопрос

  • Всем привет. Штука вот в чем. Пытаюсь использовать службу удостоверения с токеном полученным с помощью live sdk.

    По примеру по ссылке все работает: вот тут

    Но я хочу использовать постоянный токен, что бы пользователь каждый раз не логинелся. Делаю это так:

      IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
            DataProvider provider;
    
            private LiveConnectSession session;
            MobileServiceUser loginResult;
    
            public AuthUser()
            {
                if (settings.Contains("token"))
                {
                    var token = (string)settings["token"];
                    if(token.Length >0)
                    {
                        this.Authenticate(token);
                    }
                    else
                    {
                        this.Authenticate();
                    }
                }
                else
                {
                    this.Authenticate();
                }
            }
            private async System.Threading.Tasks.Task Authenticate()
            {
                LiveAuthClient liveIdClient = new LiveAuthClient("client id");
    
                
                
                while (session == null)
                {
                     if (!settings.Contains("token"))
                    {
                      
                     LiveLoginResult result = await liveIdClient.LoginAsync(new[] { "wl.basic", "wl.offline_access" });
                        if (result.Status == LiveConnectSessionStatus.Connected)
                        {
                            session = result.Session;
                            LiveConnectClient client = new LiveConnectClient(result.Session);
                            LiveOperationResult meResult = await client.GetAsync("me");
                            settings["token"] = (string)result.Session.AuthenticationToken;
    
                            loginResult = await HelpProvider.MobileService
                                .LoginWithMicrosoftAccountAsync(result.Session.AuthenticationToken);
                       
                        }
                        else
                        {
                            session = null;
                      
                        }
                        }
    
                }
            }
            public async Task Authenticate(string token)
            {     
                loginResult = await HelpProvider.MobileService
                          .LoginWithMicrosoftAccountAsync(token);
            } 

    В итоге loginResul == null, хотя как в примере - все работает.

    выводятся в output такие штуки:

    An exception of type 'System.Net.WebException' occurred in System.Windows.ni.dll and wasn't handled before a managed/native boundary
    
    An exception of type 'System.Net.WebException' occurred in System.Windows.ni.dll and wasn't handled before a managed/native boundary
    
    An exception of type 'Microsoft.WindowsAzure.MobileServices.MobileServiceInvalidOperationException' occurred in Microsoft.WindowsAzure.Mobile.DLL and wasn't handled before a managed/native boundary
    
    'TaskHost.exe' (CLR C:\windows\system32\coreclr.dll: Silverlight AppDomain): Loaded 'C:\windows\system32\en-US\mscorlib.debug.resources.dll'. Module was built without symbols.
    
    An exception of type 'Microsoft.WindowsAzure.MobileServices.MobileServiceInvalidOperationException' occurred in Microsoft.Threading.Tasks.DLL and wasn't handled before a managed/native boundary
    
    An exception of type 'Microsoft.WindowsAzure.MobileServices.MobileServiceInvalidOperationException' occurred in Microsoft.Threading.Tasks.DLL and wasn't handled before a managed/native boundary
    
    An exception of type 'Microsoft.WindowsAzure.MobileServices.MobileServiceInvalidOperationException' occurred in Microsoft.Threading.Tasks.DLL and wasn't handled before a managed/native boundary
    
    A first chance exception of type 'Microsoft.WindowsAzure.MobileServices.MobileServiceInvalidOperationException' occurred in mscorlib.ni.dll
    
    An exception of type 'Microsoft.WindowsAzure.MobileServices.MobileServiceInvalidOperationException' occurred in mscorlib.ni.dll and wasn't handled before a managed/native boundary
    
    Кто-то встечался с подобным? как решали?
    17 июня 2013 г. 22:23

Ответы

  • обновление секрета в dev.live.com и в панели управления облачного мобильного сервиса помогло. спасибо.

    18 июня 2013 г. 8:45

Все ответы

  • Здравствуйте,

    А подключение у Вас через WiFi? Если да, то по возможности используйте провод и посмотрите работает ли. Просто емулятор иногда не срабатывается с WiFi'ем.


    Если вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение"

    18 июня 2013 г. 7:51
  • Здравствуйте,

    А подключение у Вас через WiFi? Если да, то по возможности используйте провод и посмотрите работает ли. Просто емулятор иногда не срабатывается с WiFi'ем.


    При отладке на реальном устройстве результат такой же. Такое ощущение что с  облачным сервисом что-то не то... Ключ и адрес службы в приложении правильный, в мониторинге вызовы api считаются, но отправленных данных нет.

    перестал даже пример работать
    • Изменено V.A.Zolotov 18 июня 2013 г. 8:37 дополнение
    18 июня 2013 г. 8:27
  • обновление секрета в dev.live.com и в панели управления облачного мобильного сервиса помогло. спасибо.

    18 июня 2013 г. 8:45