Visual Guard Class Library Documentation

VGSecurityManager.Authenticate Method (String, String, VGAuthenticationMode)

Authenticates a user by using the specified authentication mode.

public static VGAuthenticationState Authenticate(
   String name,
   String password,
   VGAuthenticationMode mode
);

Parameters

name
the name of the user.
password
the password of the given user.
mode
The mode of the authentication used to authenticate the user. If you indicates Windows, the user and password are ignored and Visual Guard will use the current windows account.

Return Value

A VGAuthenticationState indicating if the authentication succeeds or not.

Exceptions

Exception Type Condition
ArgumentException The value of mode is equal to None or is a combination of several modes.

- or-

the name is an empty string or is longer than 64 characters.

- or-

the password is longer than 64 characters.
ArgumentNullException The name or the password is null (Nothing in VB) and the mode is not Windows.

Example

The following example displays how to test the state of the authentication

[C#]
Reauthenticate:
VGAuthenticationState state = VGSecurityManager.Authenticate(user.Text, password.Text, VGAuthenticationMode.VisualGuard);
if (state.IsFailed)
{
    if (state.IsCanceled) return;
    if (state.IsCredentialInvalid)
    {
        if (state.IsLastBadLogin)
        {
            MessageBox.Show("Invalid user or password. The next bad login will lock your account.");
        }
        else
        {
            MessageBox.Show("Invalid user or password");
        }
    }
    else if (state.IsUserNotAuthorized)
    {
        MessageBox.Show("user not authorized to log on the application");
    }
    else if (state.IsUserAccountExpired)
    {
        MessageBox.Show("your account is no more valid. Contact your administrator");
    }
    else if (state.IsUserAccountNotYetAvailable)
    {
        MessageBox.Show("your account is not yet available.");
    }
    else if (state.IsUserAccountLockedOut)
    {
        MessageBox.Show("your account is locked out. Contact your administrator.");
    }
    else if (state.MustChangePasswordAtNextLogon)
    {
        MessageBox.Show("You are required to change your password at first logon.");
        VGChangePasswordForm form = new VGChangePasswordForm(runtime);
        form.UserName = currentUsername;
        form.OldPassword = currentPassword;
        if (form.ShowDialog(this) == DialogResult.OK)
        {
            currentPassword = form.NewPassword;
            goto Reauthenticate;
        }
    }
}
else
{
    if (state.IsLastGraceLogon)
    {
        MessageBox.Show("Your password is not enough secure. You must change it.");
        // Use the Visual guard form to change the password
        // You can replace it by your own form
        VGChangePasswordForm form = new VGChangePasswordForm();
        form.ShowDialog();
    }
    else
    {
        this.DialogResult = DialogResult.OK;
        if (!state.IsPasswordSecured)
        {
            if (MessageBox.Show("Your password is not enough secure. " + Environment.NewLine + "Do you want to change it?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly) = DialogResult.Yes)
            {
                // Use the Visual guard form to change the password
                // You can replace it by your own form
                VGChangePasswordForm form = new VGChangePasswordForm();
                form.ShowDialog();
            }
        }
    }
}
[Visual Basic]
Reauthenticate:
Dim state As VGAuthenticationState = VGSecurityManager.Authenticate(userTextBox.Text, passwordTextBox.Text, VGAuthenticationMode.VisualGuard)
If state.IsFailed Then
    Me.DialogResult = DialogResult.None
    If state.IsCanceled Then Return
    If state.IsCredentialInvalid Then
        If state.IsLastBadLogin Then
            MessageBox.Show("Invalid user or password. The next bad login will lock your account.")
        Else
            MessageBox.Show("Invalid user or password")
        End If
    ElseIf state.IsUserNotAuthorized Then
        MessageBox.Show("user not authorized to log on to the application")
    ElseIf state.IsUserAccountExpired Then
        MessageBox.Show("your account is no more valid. Contact your administrator")
    ElseIf state.IsUserAccountNotYetAvailable Then
        MessageBox.Show("your account is not yet available.")
    ElseIf state.MustChangePasswordAtNextLogon Then
        Dim form As VGChangePasswordForm = New VGChangePasswordForm
        form.UserName = userTextBox.Text
        form.OldPassword = passwordTextBox.Text
        If form.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
            passwordTextBox.Text = form.NewPassword
            GoTo Reauthenticate
        End If
    ElseIf state.IsUserAccountLockedOut Then
        MessageBox.Show("your account is locked out. Contact your administrator.")
    End If
Else
    If state.IsLastGraceLogon Then
        MessageBox.Show("You must change your password")
        ' Use the Visual guard form to change the password
        ' You can replace it by your own form
        Dim form As VGChangePasswordForm = New VGChangePasswordForm
    Else
        Me.DialogResult = DialogResult.OK
        If Not state.IsPasswordSecured Then
            If MessageBox.Show("Your password is not enough secure. " + _
                Environment.NewLine + "Do you want to change it?", "", _
                MessageBoxButtons.YesNo, MessageBoxIcon.Question, _
                MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly) = DialogResult.Yes Then
                    ' Use the Visual guard form to change the password
                    ' You can replace it by your own form
                    Dim form As VGChangePasswordForm = New VGChangePasswordForm
                    form.ShowDialog()
            End If
       End If
    End If
End If

See Also

VGSecurityManager Class | Novalys.VisualGuard.Security Namespace | VGSecurityManager.Authenticate Overload List