0

私は Windows Phone 8 アプリケーションを開発しています。最初の実行では、Microsoft アカウントからユーザー認証を許可しています。ユーザー資格情報は保存されていますが、アプリケーションを実行するたびに許可画面 (「このアプリがあなたの情報にアクセスできるようにする」) が表示されます。

選択を保存して許可画面を 1 回だけ表示するにはどうすればよいですか (初めてアプリを実行するとき)。

コードスニペット:

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();
4

2 に答える 2

0

認証を何度も要求し続けないようにするには、アプリに 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

于 2013-03-05T16:22:49.383 に答える
-1

エミュレーターのライブ アカウントでコードが機能しませんでした。

他のアカウントのデバイスとエミュレーターでうまく機能しています。

于 2014-01-29T14:14:34.863 に答える