AuthenticationToken为null

Gen*_*ene 3 c# live single-sign-on microsoft-metro windows-8

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

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

登录调用成功后,我想将加密AuthenticationTokenLiveConnectSessionvia SSL传递给我的webservice,它应该解密令牌并读取它感兴趣的信息(这就是文档对这种SSO场景的建议).但遗憾的AuthenticationToken是,会议的财产总是如此null.我在这里错过了什么吗?

Cra*_*SFT 5

我遇到了同样的问题,发现我的配置存在两个问题:

  1. 我没有在https://manage.dev.live.com的API设置中定义"重定向域"
  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;
Run Code Online (Sandbox Code Playgroud)

重定向URI不需要从我能告诉的内容指向工作端点,只要这两个值匹配就应该在业务中.