Partager via


User.NonRoamableId Propriété

Définition

Obtient l’ID non itinérant de l’utilisateur.

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

Valeur de propriété

String

Platform::String

winrt::hstring

ID non itinérant de l’utilisateur.

Exemples

Cet exemple montre comment enregistrer le NonRoamableId lorsqu’une application est suspendue, puis obtenir le NonRoamableId lorsque l’application est activée. Le NonRoamableId est ensuite utilisé pour récupérer l’objet User, qui est défini comme utilisateur actuel. Ce code est placé dans App.xaml.cs et le code superflu a été supprimé.

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

Remarques

Dans une application multi-utilisateur, vous devrez peut-être vous souvenir de l’utilisateur avec lequel l’application travaillait avant que l’application ne soit désactivée ou suspendue. Vous pouvez enregistrer le NonRoamableId, puis l’utiliser comme clé pour récupérer à nouveau l’objet utilisateur lors de l’activation (voir User.GetFromId).

Le NonRoamableId d’un objet utilisateur est une chaîne propre à l’appareil, à l’application et à l’utilisateur. Il ne peut pas être itinérant vers d’autres appareils ou d’autres applications. En outre, si l’utilisateur se connecte à distance, ce qui entraîne une valeur User.Type différente, le NonRoamableId est différent.

S’applique à