ATTENZIONE: Questo sito impiega diversi tipi di cookies. Alla pagina MAGGIORI INFORMAZIONI è possibile avere informazioni aggiuntive. Cliccando su ACCETTO o continuando a navigare sul sito acconsenti al loro utilizzo.
<febbraio 2023>
lunmarmergiovensabdom
303112345
6789101112
13141516171819
20212223242526
272812345
6789101112
Immagini  

Usare l'account Live

Se avete bisogno di accedere ai dati dell'account Live configurato sul telefono, come primo passo dovete aggiungere il package LIVE SDK tramite NuGet al vostro progetto e bisogna associare il progetto ad un'App dello store, altrimenti i servizi Live non funzionano.

Inoltre è necessario richiedere l'autorizzazione all'utente affinché la vostra APP possa usare i dati dell'account Live. Ognuno può organizzare come preferisce questa richiesta, di seguito l'implementazione fatta da me

            if (CUtility.getSetting("LIVEID", "").ToString() == "" && CUtility.getSetting("LIVEID_CANASKAGAIN", "Y").ToString() == "Y")
            {
                var messageDialog = new MessageDialog("Can this app use your Live Account data?" , "Permission request");
                messageDialog.Commands.Add(new UICommand("YES", new UICommandInvokedHandler(this.CommandInvokedHandler)));
                messageDialog.Commands.Add(new UICommand("NO", new UICommandInvokedHandler(this.CommandInvokedHandler)));
                messageDialog.DefaultCommandIndex = 0;
                messageDialog.CancelCommandIndex = 1;
                await messageDialog.ShowAsync();
            }
            else
            {
                //DO SOMETHING WITH CUtility.getSetting("LIVEID", "").ToString();
            }



Nel momento in cui l'utente concede l'autorizzazione, si può procedere con il login al servizio Live e recuperare così le informazioni sull'account

             CLiveId myLive = new CLiveId();
             try
             {
                 await myLive.SignIn();
                 CUtility.setSetting("LIVEID", myLive.username.ToLower());
                 myLive.SignOut();
             }
             catch
             {
                 //DO SOMETHING
             }


Il codice della classe CLiveId è il seguente. Nell'esempio inserisco come recuperare il campo "username"

using Microsoft.Live;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;

namespace NSPolipone
{
    class CLiveId
    {
        private bool isSignedIn = false;
        private LiveConnectClient client;
       
public string username { get; set; }

        /// <summary>
        /// EFFETTUA IL SIGN-IN A WINDOWS LIVE
        /// </summary>
        public async Task SignIn()
        {
            if (!this.isSignedIn)
            {
                try
                {
                    LiveAuthClient auth = new LiveAuthClient();
                    LiveLoginResult loginResult = await auth.LoginAsync(new string[] { "wl.signin" });
                    if (loginResult.Status == LiveConnectSessionStatus.Connected)
                    {
                        this.client = new LiveConnectClient(loginResult.Session);
                        this.isSignedIn = (loginResult.Status == LiveConnectSessionStatus.Connected);
                        LiveOperationResult operationResult = await this.client.GetAsync("me");
                        // determino se le informazioni sono state recuperate con successo
                        dynamic result = operationResult.Result;
                        // in caso di successo viene recuperato il nome utente
                        if (result != null) username = result.name;
                    }
                }
                catch (LiveAuthException ex)
                {
                    //DO SOMETHING
                }
                catch (Exception ex)
                {
                    //DO SOMETHING
                }
            }
        }

        public void SignOut()
        {
            //Non si può fare logout dalla modalità SSO, quindi si imposta a null il client
            this.client = null;
        }

    }
}


Mail/Calendar/Contacts: https://dev.outlook.com/

Notifiche