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

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移动服务的新手,我不知道要解决此问题。

最佳答案

此自定义登录代码基于自定义API,因此不会像使用内置登录功能时那样自动存储结果。

从API获取结果时,您需要手动设置mClient的CurrentUser字段。

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

10-08 11:33