1

我正在尝试让服务器管理的身份验证与 Visual Studio Mobile Center 一起使用。它使用 Azure 应用服务身份验证。我能够设置我的 Facebook 开发人员帐户以允许登录,然后在 Mobile Center 上对其进行配置,当我在 Web 浏览器中转到移动中心链接进行身份验证时,它工作得很好。

我将身份验证的客户端设置为与 Adrian Hall 在他的书中的示例相同: https ://adrianhall.github.io/develop-mobile-apps-with-csharp-and-azure/chapter2/social/#adding-authentication-到移动客户端

当 facebook 的 webview 弹出时,它让我输入凭据,但是当我点击提交按钮时崩溃。这是来自应用程序输出窗口的堆栈跟踪:

System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
[AndroidRuntime]   at System.ThrowHelper.ThrowKeyNotFoundException () [0x00000] in <8c304e4006094a46a7950338a3b3cb5d>:0 
[AndroidRuntime]   at System.Collections.Generic.Dictionary`2[TKey,TValue].get_Item (TKey key) [0x00021] in <8c304e4006094a46a7950338a3b3cb5d>:0 
[AndroidRuntime]   at Microsoft.WindowsAzure.MobileServices.MobileServiceUIAuthentication+<>c__DisplayClass2_0.<LoginAsyncOverride>b__1 (System.Object sender, Xamarin.Auth._MobileServices.AuthenticatorCompletedEventArgs e) [0x00030] in <fe9883f628724025a38f5e1946e5b4c5>:0 
[AndroidRuntime]   at (wrapper delegate-invoke) System.EventHandler`1[Xamarin.Auth._MobileServices.AuthenticatorCompletedEventArgs]:invoke_void_object_TEventArgs (object,Xamarin.Auth._MobileServices.AuthenticatorCompletedEventArgs)
[AndroidRuntime]   at Xamarin.Auth._MobileServices.Authenticator+<>c__DisplayClass22_0.<OnSucceeded>b__0 () [0x00021] in <fe9883f628724025a38f5e1946e5b4c5>:0 
[AndroidRuntime]   at Java.Lang.Thread+RunnableImplementor.Run () [0x0000b] in <a4e9508b230b49a18f145a67e12eb7b8>:0 
[AndroidRuntime]   at Java.Lang.IRunnableInvoker.n_Run (System.IntPtr jnienv, System.IntPtr native__this) [0x00009] in <a4e9508b230b49a18f145a67e12eb7b8>:0 
[AndroidRuntime]   at (wrapper dynamic-method) System.Object:23f66101-d05c-44cc-a8fe-d50bbc9e59d1 (intptr,intptr)

使用 Xamarin.Forms 2.3.3、最新的 Xamarin.Auth 和最新的 Azure MobileServicesClient 在最新的 Xamarin Studio 和 Visual Studio 2017 上进行了测试。

关于如何调试这个的任何建议?我已经检查了所有异常,我得到了一个未处理的异常,并显示“字典中不存在给定的键。”消息,没有内部异常或堆栈跟踪,然后它崩溃了。

编辑:复制:https ://github.com/brandonrisell/TapFriends

4

1 回答 1

2
  1. 打开 Azure 门户
  2. 查找 Mobile Center 后端的资源组
  3. 打开移动应用资源
  4. 选择身份验证/授权
  5. 检查令牌存储是否已打开。

如果不是,请将其打开,保存然后重新启动并重新检查。

我认为这就是问题所在。如果没有,请在这里回复我,我们将尝试其他方法。

于 2017-04-12T21:57:10.130 回答