AuthenticationService.Login Method (LoginParameters)
[WCF RIA Services Version 1 Service Pack 2 is compatible with either .NET framework 4 or .NET Framework 4.5, and with either Silverlight 4 or Silverlight 5.]
Asynchronously authenticates and logs in to the server with the specified parameters.
Namespace: System.ServiceModel.DomainServices.Client.ApplicationServices
Assembly: System.ServiceModel.DomainServices.Client (in System.ServiceModel.DomainServices.Client.dll)
Syntax
'Declaration
Public Function Login ( _
parameters As LoginParameters _
) As LoginOperation
'Usage
Dim instance As AuthenticationService
Dim parameters As LoginParameters
Dim returnValue As LoginOperation
returnValue = instance.Login(parameters)
public LoginOperation Login(
LoginParameters parameters
)
public:
LoginOperation^ Login(
LoginParameters^ parameters
)
member Login :
parameters:LoginParameters -> LoginOperation
public function Login(
parameters : LoginParameters
) : LoginOperation
Parameters
- parameters
Type: System.ServiceModel.DomainServices.Client.ApplicationServices.LoginParameters
Login parameters that specify the user to authenticate.
Return Value
Type: System.ServiceModel.DomainServices.Client.ApplicationServices.LoginOperation
The result of the operation.
Exceptions
Exception | Condition |
---|---|
InvalidOperationException | This method is called while another asynchronous operation is still being processed. |
Remarks
This method starts an operation with no complete action or user state. If this method returns normally, a LoggedIn event may be raised. Also, successful completion of this operation will update the User.
Examples
The following example shows a call to the Login method with login parameters and a callback method.
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();
}
}
See Also
Reference
System.ServiceModel.DomainServices.Client.ApplicationServices Namespace