3

私はWindowsPhone8用のアプリケーションを開発しています。次の非常に単純な例を使用して認証を実装しようとしています: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コードのビットであり、私が見る限りは役に立ちません。

4

2 に答える 2

0

古い質問ですが、これは私を助けました。

MSDN フォーラムからの回答の引用

忘れていたのですが、私たちのチュートリアルはまだウィンドウ フォン 8.1 用に更新されていないため、次のコードも app.xaml.cs に追加する必要があります (このスニペットはユニバーサル アプリ用で、phone 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
}
于 2015-08-09T02:10:15.350 に答える
0

アカウントが正しく設定されていないと思います。ライブ ダッシュボードのアプリ登録ページで、正しいモバイル サービス URL を入力してください。URL が正しくない場合、このような例外が発生する可能性が高くなります。

于 2013-03-22T11:11:26.543 に答える