Partager via


Classe LoginOperation

Type d'opération retourné par des opérations Login sur AuthenticationService.

Espace de noms: System.ServiceModel.DomainServices.Client.ApplicationServices
Assembly : System.ServiceModel.DomainServices.Client (dans system.servicemodel.domainservices.client.dll)

Utilisation

'Utilisation
Dim instance As LoginOperation

Syntaxe

'Déclaration
Public NotInheritable Class LoginOperation
    Inherits AuthenticationOperation
public sealed class LoginOperation : AuthenticationOperation
public ref class LoginOperation sealed : public AuthenticationOperation
public final class LoginOperation extends AuthenticationOperation
public final class LoginOperation extends AuthenticationOperation

Exemple

L'exemple suivant montre un appel à la méthode Login avec les paramètres de connexion et une méthode de rappel qui accepte un objet LoginOperation comme paramètre.

Protected Overrides Sub OnNavigatedTo(ByVal e As System.Windows.Navigation.NavigationEventArgs)
    SetControlVisibility(WebContext.Current.User.IsAuthenticated)
End Sub

Private Sub LoginButton_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
    Dim lp As LoginParameters = New LoginParameters(UserName.Text, Password.Password)
    WebContext.Current.Authentication.Login(lp, AddressOf Me.LoginOperation_Completed, Nothing)
    LoginButton.IsEnabled = False
    LoginResult.Text = ""
End Sub

Private Sub LoginOperation_Completed(ByVal lo As LoginOperation)
    If (lo.HasError) Then
        LoginResult.Text = lo.Error.Message
        LoginResult.Visibility = System.Windows.Visibility.Visible
        lo.MarkErrorAsHandled()
    ElseIf (lo.LoginSuccess = False) Then
        LoginResult.Text = "Login failed. Please check user name and password."
        LoginResult.Visibility = System.Windows.Visibility.Visible
    ElseIf (lo.LoginSuccess = True) Then
        SetControlVisibility(True)
    End If
    LoginButton.IsEnabled = True
End Sub

Private Sub SetControlVisibility(ByVal isAuthenticated As Boolean)
    If (isAuthenticated) Then
        LoginBorder.Visibility = System.Windows.Visibility.Collapsed
        WelcomeText.Text = "Welcome " + WebContext.Current.User.Name
        WelcomeText.Visibility = System.Windows.Visibility.Visible
        LogoutButton.Visibility = System.Windows.Visibility.Visible
    Else
        LoginBorder.Visibility = System.Windows.Visibility.Visible
        WelcomeText.Visibility = System.Windows.Visibility.Collapsed
        LogoutButton.Visibility = System.Windows.Visibility.Collapsed
    End If
End Sub

Private Sub LogoutButton_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
    WebContext.Current.Authentication.Logout(AddressOf Me.LogoutOperation_Completed, Nothing)
End Sub

Private Sub LogoutOperation_Completed(ByVal lo As LogoutOperation)
    If (Not (lo.HasError)) Then
        SetControlVisibility(False)
    Else
        Dim ew As ErrorWindow = New ErrorWindow("Logout failed.", "Please try logging out again.")
        ew.Show()
        lo.MarkErrorAsHandled()
    End If
End Sub
protected override void OnNavigatedTo(NavigationEventArgs e)
{
    SetControlVisibility(WebContext.Current.User.IsAuthenticated);
}

private void LoginButton_Click(object sender, RoutedEventArgs e)
{
    LoginParameters lp = new LoginParameters(UserName.Text, Password.Password);
    WebContext.Current.Authentication.Login(lp, this.LoginOperation_Completed, null);
    LoginButton.IsEnabled = false;
    LoginResult.Text = "";
}

private void LoginOperation_Completed(LoginOperation lo)
{
    if (lo.HasError)
    {
        LoginResult.Text = lo.Error.Message;
        LoginResult.Visibility = System.Windows.Visibility.Visible;
        lo.MarkErrorAsHandled();
    }
    else if (lo.LoginSuccess == false)
    {
        LoginResult.Text = "Login failed. Please check user name and password.";
        LoginResult.Visibility = System.Windows.Visibility.Visible;
    }
    else if (lo.LoginSuccess == true)
    {
        SetControlVisibility(true);
    }
    LoginButton.IsEnabled = true;
}

private void SetControlVisibility(bool isAuthenticated)
{
    if (isAuthenticated)
    {
        LoginBorder.Visibility = System.Windows.Visibility.Collapsed;
        WelcomeText.Text = "Welcome " + WebContext.Current.User.Name;
        WelcomeText.Visibility = System.Windows.Visibility.Visible;
        LogoutButton.Visibility = System.Windows.Visibility.Visible;
    }
    else
    {
        LoginBorder.Visibility = System.Windows.Visibility.Visible;
        WelcomeText.Visibility = System.Windows.Visibility.Collapsed;
        LogoutButton.Visibility = System.Windows.Visibility.Collapsed;
    }
}

private void LogoutButton_Click(object sender, RoutedEventArgs e)
{
    WebContext.Current.Authentication.Logout(this.LogoutOperation_Completed, null);
}

private void LogoutOperation_Completed(LogoutOperation lo)
{

    if (!lo.HasError)
    {
        SetControlVisibility(false);
    }
    else
    {
        ErrorWindow ew = new ErrorWindow("Logout failed.", "Please try logging out again.");
        ew.Show();
        lo.MarkErrorAsHandled();
    }
}

Hiérarchie d'héritage

System.Object
   System.ServiceModel.DomainServices.Client.OperationBase
     System.ServiceModel.DomainServices.Client.ApplicationServices.AuthenticationOperation
      System.ServiceModel.DomainServices.Client.ApplicationServices.LoginOperation

Sécurité des threads

Tous les membres publics statiques (Partagés dans Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Plateformes

Plateformes de développement

Windows XP Édition familiale, Windows XP Professionnel, Windows Server 2003 , Windows Server 2008 et Windows 2000

Plateformes cibles

Change History

Voir aussi

Référence

Membres LoginOperation
Espace de noms System.ServiceModel.DomainServices.Client.ApplicationServices