我目前正在为 Windows 8 消费者预览版编写一个 C# Metro 应用程序,它从我的基于 REST 的 Web 服务中获取一些数据。我希望应用程序使用当前用户的 Windows Live 帐户对服务进行身份验证。因此,我将 Windows Live SDK 添加到我的解决方案中,并将文档中的以下代码段粘贴到我的登录 View 中:
LiveAuthClient liveClient = new LiveAuthClient();
LiveLoginResult loginResult = await liveClient.Login(new string[] { "wl.signin" });
登录调用成功后,我想通过 SSL 将
AuthenticationToken
的加密 LiveConnectSession
传递给我的网络服务,该服务应该解密 token 并读取它感兴趣的信息(这就是文档对此类 SSO 场景的建议)。但遗憾的是, session 的 AuthenticationToken
属性始终是 null
。我在这里错过了什么吗? 最佳答案
我遇到了同样的问题,并意识到我的配置有两个问题:
例如,在您指定的 API 设置中:
然后使用 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 不需要指向工作端点,只要这两个值匹配您就应该从事业务。
关于c# - AuthenticationToken 为空,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9572779/