コード例 #1
0
        public async Task TryLoginWithCachedCredentialsAsync()
        {
            var result = new LoginResult();

            ILoginManager mgr = Xamarin.Forms.DependencyService.Get <ILoginManager>();

            if (mgr != null)
            {
                //try to get cached user credentials and test them
                try
                {
                    var user = mgr.GetCachedUser(azClient);
                    if (user != null)
                    {
                        // test accessing the service with the cached credentials
                        azClient.CurrentUser = user;
                        bool isCredentialValid = await TestLoginCredentialIsValidAsync();

                        if (isCredentialValid)
                        {
                            result.Succeeded = true;
                        }
                        else
                        {
                            result.Succeeded    = false;
                            result.ErrorMessage = "Cached credentials expired, please login again.";
                        }
                    }
                }
                catch
                {
                    result.Succeeded    = false;
                    result.ErrorMessage = "Failed to use cached credentials, please login.";
                }
            }

            MessagingCenter.Send <AuctionService, LoginResult>(this, Constants.MSG_LOGIN_COMPLETE, result);
        }