0

我有一个.net后端Azure移动服务。我一直试图从Android客户端获取当前用户信息。我正在使用以下代码Azure移动服务getCurrentUser

private void authenticate() { 

    LoginRequest login = new LoginRequest(); 
    login.setUsername(txtUsername.getText().toString()); 
    login.setPassword(txtPassword.getText().toString()); 
    ServiceConstant.mClient.invokeApi("CustomLogin", login, LoginRequest.class, 
      new ApiOperationCallback<LoginRequest>() { 
       @Override 
       public void onCompleted(LoginRequest result, 
         Exception exception, ServiceFilterResponse response) { 
        if (exception == null) { 
         try 
         { 
          if (chkRemember.isChecked()) 
          { 
           cacheUserToken(ServiceConstant.mClient.getCurrentUser()); 
           Toast.makeText(getApplicationContext(),"cache success",Toast.LENGTH_SHORT).show(); 
          } 
         } 
         catch (Exception e) 
         { 
          Log.e(TAG, "cache fail"); 
          Toast.makeText(getApplicationContext(), 
            "cache fail", 
            Toast.LENGTH_SHORT).show(); 
         } 
         Log.i(TAG, "giris basarili " + result); 

         Intent intent = new Intent(LoginActivity.this, DeviceScanActivity.class); 
         startActivity(intent); 

        } else { 
         Log.e(TAG, "login fail" + exception); 
         alert("login", "success\n" + exception); 
        } 
       } 
      }); 
} 

当我尝试获取当前用户时,它将返回null。我应该如何获取当前用户信息。我是Azure移动服务的新手,我没有任何想法来解决这个问题。

+0

您是否设置了身份验证? https://azure.microsoft.com/en-us/documentation/articles/mobile-services-dotnet-backend-android-get-started-users/ –

+0

是的,我已经加了认证码 –

回答

1

这个自定义登录代码是基于一个定制的API,所以它的结果没有得到当你的工作就像自动存储到内置登录功能。

您需要手动设置移动客户端的CurrentUser场时,你从你的API的结果。

如果你是以下this custom auth tutorial,返回类型将实际匹配客户的MobileServiceUser类型,并且可以设置值。有关更多详细信息,请参阅该教程的最后一节,标题为“使用来自客户端的自定义身份验证登录”。

+0

首先感谢您为了回答,我正在关注这个问题,并且这个过程如下http://imgur.com/Niq00pO在此之后,当我尝试缓存用户mAuthenticationToken的值看起来像这样是null http://imgur.com/mpPGiTi,这是一个问题?我现在可以做些什么,你给我点意见 –

+0

看起来类型没有完全对齐。最简单的解决方案可能是将响应视为简单的JSON对象,并提取userID和authenticationToken值。您可以将它们设置在新的MobileServiceUser上,然后将MobileServiceClient.CurrentUser分配给它。 – mattchenderson

+0

如何从response.getContent()中获取这些值? –