Condividi tramite


User.NonRoamableId Proprietà

Definizione

Ottiene l'ID non roamable dell'utente.

public:
 property Platform::String ^ NonRoamableId { Platform::String ^ get(); };
winrt::hstring NonRoamableId();
public string NonRoamableId { get; }
var string = user.nonRoamableId;
Public ReadOnly Property NonRoamableId As String

Valore della proprietà

String

Platform::String

winrt::hstring

ID non roamable dell'utente.

Esempio

In questo esempio viene illustrato come salvare NonRoamableId quando un'app viene sospesa, quindi ottenere nonRoamableId quando l'app viene attivata. NonRoamableId viene quindi usato per recuperare l'oggetto User, impostato come utente corrente. Questo codice viene inserito in App.xaml.cs e il codice extraneo è stato rimosso.

User ActiveUser = null;

protected async override void OnLaunched(LaunchActivatedEventArgs e)
{
    // ... code removed ...

        if (e.PreviousExecutionState == ApplicationExecutionState.Terminated)
        {
            //TODO: Load state from previously suspended application
            var localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
            if (localSettings.Values.ContainsKey("previousUser"))
            {
                var previousId = (string)localSettings.Values["previousUser"];
                ActiveUser = User.GetFromId(previousId);
            }
            else
            {
                IReadOnlyList<User> users = await Windows.System.User.FindAllAsync();
                ActiveUser = users[0];
            }
        }

    // ... code removed ...
}

private void OnSuspending(object sender, SuspendingEventArgs e)
{
    var deferral = e.SuspendingOperation.GetDeferral();
    //TODO: Save application state and stop any background activity

    // If the user is authenticated and not a guest, save the  
    // NonRoamableId so we can retrieve this specific user later. 
    var localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;

    if (ActiveUser != null &&
       (ActiveUser.AuthenticationStatus != UserAuthenticationStatus.Unauthenticated) &&
       (ActiveUser.Type == UserType.LocalUser || ActiveUser.Type == UserType.RemoteUser))
    {
        localSettings.Values.Add("previousUser", ActiveUser.NonRoamableId);
    }
    else
    {
        if (localSettings.Values.ContainsKey("previousUser"))
        {
            localSettings.Values.Remove("previousUser");
        }
    }

    deferral.Complete();
}

Commenti

In un'app multiutente potrebbe essere necessario ricordare quale utente ha lavorato l'app prima di essere disattivata o sospesa. È possibile salvare NonRoamableId, quindi usarlo come chiave per recuperare di nuovo l'oggetto utente sull'attivazione (vedere User.GetFromId).

NonRoamableId per un oggetto utente è una stringa univoca per il dispositivo, l'app e l'utente. Non può passare ad altri dispositivi o ad altre app. Inoltre, se l'utente esegue l'accesso in remoto, con un valore User.Type diverso, l'oggetto NonRoamableId è diverso.

Si applica a