我有一个使用Azure MobileServiceClient(DataService.client)的Xamarin Android应用程序。它设置为使用Google身份验证。我按如下方式登录:
var user = await DataService.client.LoginAsync(this,
MobileServiceAuthenticationProvider.Google, "myapp");
这很有效。它会打开浏览器进入Google登录页面并登录。一旦你在Android设备上执行此操作,它就不再提示您输入登录信息。我有一种情况,我想以不同的用户身份登录,以测试一些内部应用程序权限。我创建了一个注销函数,如下所示:
await DataService.client.LogoutAsync();
这会将您注销,但下次需要进行身份验证时,它不会提示您输入凭据。它会将您作为同一个人重新登录。有没有办法清除登录信息,以便再次询问您的用户名?
答案 0 :(得分:2)
AFAIK,MobileServiceClient.LogoutAsync()
只清除移动客户端中当前MobileServiceClient实例的MobileServiceClient.CurrentUser
。要完全注销,您需要在执行MobileServiceClient.LogoutAsync()
之前手动向移动后端发送注销请求,如下所示。
Get https://{your-app-name}.azurewebsites.net/.auth/logout
Header X-ZUMO-AUTH:{MobileServiceClient.CurrentUser.MobileServiceAuthenticationToken}
您可以关注adrian hall关于Implementing a LogoutAsync() method的书籍的详细信息。