我有一个.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移动服务的新手,我不知道解决这个问题。
答案 0 :(得分:1)
此自定义登录代码基于自定义API,因此它的结果不会像使用内置登录功能时那样自动存储。
当您从API获得结果时,您需要手动设置mClient的CurrentUser字段。
如果您关注this custom auth tutorial,则返回类型实际上将与客户端的MobileServiceUser类型匹配,您可以设置该值。有关更多详细信息,请参阅该教程的最后一部分,标题为&#34;使用客户端的自定义身份验证登录。&#34;