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.
<aprile 2024>
lunmarmergiovensabdom
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345
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