【问题标题】:azure mobile services authentication天蓝色移动服务身份验证
【发布时间】:2016-02-04 04:56:31
【问题描述】:

我正在为 Windows Phone 8 开发一个应用程序。我正在尝试使用这个非常简单的示例来实现身份验证:http://www.windowsazure.com/en-us/develop/mobile/tutorials/get-started-with-users-wp8/,然后是这个:http://www.windowsazure.com/en-us/develop/mobile/tutorials/authorize-users-in-scripts-wp8/。我的应用程序必须继续能够验证和控制我的应用程序用户的访问权限。具体来说我的问题在这里:

private async System.Threading.Tasks.Task Authenticate()
{
    while (user == null)
    {
        string message;
        try
        {
            user = await App.MobileService
                        .LoginAsync(MobileServiceAuthenticationProvider.MicrosoftAccount);
            message = string.Format("You are now logged in - {0}", user.UserId);
        }
        catch (InvalidOperationException e)
        {
            message = e + "You must log in. Login Required";
        }
        MessageBox.Show(message);
    }
}

这与两个教程的代码一样多。它从user = await App.MobileService .LoginAsync(MobileServiceAuthenticationProvider.MicrosoftAccount); 开始登录屏幕 但在接受登录凭据后,它开始显示错误消息:

+       $exception  {System.InvalidOperationException: Cannot start a login operation because login is already in progress.

at Microsoft.WindowsAzure.MobileServices.MobileServiceClient.<SendLoginAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter1.GetResult()
at SeeThrough.MainPage.<Authenticate>d__7.MoveNext()}   System.Exception {System.InvalidOperationException}

它重复这个过程,因为“用户”永远不会被分配,因为“登录已经在进行中”的情况。我在网上找不到任何可以帮助的东西,我已经搜索了这个错误,并且只找到了 4 次确切的问题,这些都是 github 代码,据我所知没有任何帮助。

【问题讨论】:

    标签: azure windows-phone-8


    【解决方案1】:

    我认为您没有正确配置帐户。请在实时仪表板的应用注册页面中提供正确的移动服务 URL。如果 URL 不正确,则更有可能出现此类异常!

    【讨论】:

    • live connect 开发者中心的重定向 url 与 azure 管理门户中显示的 MOBILE SERVICE URL 相同。客户端 ID 和客户端密码在两者中也是相同的。客户 ID 是否必须在它自己的应用程序中,这可能是我在 uni 的最后一个项目,如果它不尽快排序,它会让我失败
    【解决方案2】:

    老问题,但这对我有帮助。

    引用MSDN Forums的回答

    我忘了说,我们的教程还没有更新窗口 电话 8.1,因此您还需要添加以下代码 进入您的 app.xaml.cs(此 sn-p 用于通用应用程序,电话 8.1 将是相同的,只是不需要它是有条件的)

    protected override void OnActivated (IActivatedEventArgs args)
    {
        base.OnActivated (args);
    
    #if WINDOWS_PHONE_APP
        if (args.Kind == ActivationKind.WebAuthenticationBrokerContinuation)
            App.<mobileservice>.LoginComplete (args as WebAuthenticationBrokerContinuationEventArgs);
    #endif
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-27
      • 2016-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多