首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Windows Phone 8和LiveConnect中每次都会出现权限屏幕

在Windows Phone 8和LiveConnect中每次都会出现权限屏幕
EN

Stack Overflow用户
提问于 2013-03-05 19:08:29
回答 2查看 1.2K关注 0票数 0

我正在开发Windows Phone 8应用程序,在第一次运行时,我允许用户从他的Microsoft帐户进行身份验证。用户凭证保存得很好,但每次我运行应用程序时都会出现权限屏幕(“允许此应用程序访问您的信息”)。

如何保存我的选择并只显示一次权限屏幕(第一次运行app)?

代码片段:

代码语言:javascript
复制
private LiveConnectSession _session;
    private async Task<Users> Authenticate()
    {

        var liveIdClient = new LiveAuthClient("XXXXXXXXXXXXXXX");

        while (_session == null)
        {
            var result = await liveIdClient.LoginAsync(new[]
                                                           {
                                                               "wl.signin",
                                                               "wl.offline_access"
                                                           });

            if (result.Status == LiveConnectSessionStatus.Connected)
            {
                _session = result.Session;
                var client = new LiveConnectClient(result.Session);
                var meResult = await client.GetAsync("me");
                var user = await App.MobileService.LoginAsync(result.Session.AuthenticationToken);
                return new Users
                {
                    UserName = user.UserId,
                    RealName = string.Format("{0} {1}", meResult.Result["first_name"], meResult.Result["last_name"]),
                    TimeStamp = DateTime.Now,
                    IsAuthorised = false
                };
            }
            else
            {
                _session = null;
                MessageBox.Show("You must log in.", "Login Required", MessageBoxButton.OK);
            }
        }
        return null;
    }

在构造函数(公共MainPage())中:

代码语言:javascript
复制
(DataContext as MainViewModel).User = await Authenticate();
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-29 22:14:35

这段代码不适用于我在模拟器上的实时账号。

它在具有其他帐户的设备和仿真器上工作良好。

票数 -1
EN

Stack Overflow用户

发布于 2013-03-06 00:22:49

你的应用需要wl.offline_access作用域,这样才不会一遍又一遍地请求身份验证。

wl.offline_access

http://msdn.microsoft.com/en-us/library/live/hh243646.aspx#wlofflineaccess

作用域和权限(Live Connect)

http://msdn.microsoft.com/en-us/library/live/hh243646.aspx

这是我用来发现offline_access的帖子

http://dotnet.dzone.com/articles/things-know-about-uploading?mz=27249-windowsphone7

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15222234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档