我有一个.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。有关更多详细信息,请参阅该教程的最后一部分,标题为“使用来自客户端的自定义身份验证登录”。