AuthenticationToken is null

本文关键字:null is AuthenticationToken | 更新日期: 2023-09-27 18:26:40

我目前正在为Windows8消费者预览版编写一个C#metro应用程序,该应用程序从我的基于REST的web服务中获取一些数据。我希望应用程序使用当前用户的Windows Live帐户对服务进行身份验证。因此,我将Windows Live SDK添加到我的解决方案中,并将文档中的以下片段粘贴到我的登录视图中:

LiveAuthClient liveClient = new LiveAuthClient();                
LiveLoginResult loginResult = await liveClient.Login(new string[] { "wl.signin" });

登录调用成功后,我想通过SSL将LiveConnectSession的加密AuthenticationToken传递给我的Web服务,Web服务应该解密令牌并读取它感兴趣的信息(这就是文档对这种SSO场景的建议)。但遗憾的是,会话的AuthenticationToken属性始终是null。我是不是遗漏了什么?

AuthenticationToken is null

我遇到了同样的问题,并意识到我的配置有两个问题:

  1. 我没有在的API设置中定义"重定向域"https://manage.dev.live.com
  2. 我没有使用重载的LiveAuthClient构造函数

例如,在API设置中指定:

重定向域:http://localhost/myapp

然后使用LiveAuthClient:的构造函数重载

var authClient = new LiveAuthClient("http://localhost/myapp");
var loginResult = await authClient.LoginAsync("wl-signin");
//this should no longer be null
var authToken = loginResult.Session.AuthenticationToken;

据我所知,重定向URI不需要指向一个工作端点,只要这两个值在业务中匹配即可。

您是否在Live Connect应用程序管理网站上为Metro风格的应用程序注册了应用程序?您需要在此处注册,它才能使用Live Services。在您为应用程序包指定名称和发布者后,它将向您提供以下说明。