Authenticates a user by using the specified authentication mode.
A VGAuthenticationState indicating if the authentication succeeds or not.
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. |
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
VGSecurityManager Class | Novalys.VisualGuard.Security Namespace | VGSecurityManager.Authenticate Overload List