0

嗯...我有一个登录页面和一个植入基于事件的异步模式的 WCF。最终,我需要在这里做的是对 WCF 方法进行异步调用,并且执行应该等待响应,然后继续进行身份验证,然后重定向。

我正在 WP8 上开发,我这样称呼我的 WCF:

登录.xaml.cs

private async void SignIn_Click(object sender, EventArgs e)
{
   await App.Instance.StaticServiceData.LoadUser(App.Instance.User);

   LoginSuccessFail();
}

WCF_StaticDataService.cs

public async Task LoadUser(User user)
{
   var client = new BMAStaticDataService.StaticClient();
   client.AuthenticateUserAsync(user);
   client.AuthenticateUserCompleted += async (o,e) => {
   try
   {
      await UpdateCacheUserData(existing);
      if (existing.UserId > 0)
         {
            App.Instance.User.UserId = existing.UserId;
            App.Instance.User.Email = existing.Email;

            App.Instance.IsUserAuthenticated = true;
         }
      else
      {
         App.Instance.IsUserAuthenticated = false;
         throw new Exception("User has no authentication");
      }
   }
   catch (Exception){throw;}
}

我想调用 LoginSuccessFail(); 方法,然后仅在 WCF 调用完成后导航到相应的页面。请注意,我不想将我的导航感知代码放在 Service 类和 AuthenticateUserCompleted 事件中,因为它不是处理这个问题的工作。

最终,无论成功与否,服务调用完成后,我都希望在我的 Login.xaml.cs 中收到回调或反馈或任何内容。

希望我的信息足够。否则,请建议提供进一步的说明。

4

0 回答 0