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

时间:2013-03-05 11:08:29

标签: authentication windows-phone-8 windows-phone live-sdk

我正在开发Windows Phone 8应用程序,并且在第一次运行时我让用户从他的Microsoft帐户授权。 用户凭据保存得很好,但每次我运行应用程序时都会出现权限屏幕(“让这个应用程序访问您的信息”)。

如何只保存一次我的选择和显示权限屏幕(我第一次运行应用程序时)?

代码段:

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;
    }

在构造函数(public MainPage())中:

(DataContext as MainViewModel).User = await Authenticate();

2 个答案:

答案 0 :(得分:0)

您的应用需要wl.offline_access范围,以便不会反复请求身份验证。

wl.offline_access

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

范围和权限(实时连接)

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

这是我用来发现offline_access的帖子

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

答案 1 :(得分:-1)

该代码无法在我的模拟器上使用我的真实帐户。

它在设备和模拟器上与其他帐户一起运行良好。