This event is raised when a certificate has been requested.
Syntax
| Visual Basic (Usage) | Copy Code |
|---|
Dim instance As Imap
Dim handler As EventHandler
AddHandler instance.CertificateRequested, handler |
Example
The following example demonstrates using IMAP over SSL.
| Visual Basic | Copy Code |
|---|
' Be sure to import the namespace by putting "Imports Dart.PowerTCP.Mail"
' at the top of your class.
Private Sub ImapSSLTest()
' Use explicit SSL
Imap1.Security = Dart.PowerTCP.Mail.Security.Explicit
' Login to the mail server
Imap1.Login("MyImapServer", "username", "password")
' Send a NOOP command
Dim Response As ImapResponse = Imap1.Noop()
' Check the response
If Response.Status = ImapStatus.Ok Then
Debug.WriteLine("Good response from server")
Else
Debug.WriteLine("Response from server: " + Response.Status)
End
' Logout
Imap1.Logout()
End Sub
Private Sub Imap1_CertificateReceived(ByVal sender As Object, e As Dart.PowerTCP.Mail.CertificateReceivedEventArgs) Handles Imap1.CertificateReceived
Dim msg As String = ""
' Check to see if the certificate is from a trusted root.
If Not e.TrustedRoot Then
msg += "This certificate is not from a trusted root" + vbCrLf
End If
' Check to see if the certificate has a valid date.
If Not e.ValidDate Then
msg += "This certificate does not have a valid date" + vbCrLf
End If
' Check to see if the certificate has a valid name.
If Not e.ValidName Then
msg += "This certificate does not have a valid name" + vbCrLf
End If
If msg <> "" Then
msg += "Would you like to accept this certificate anyway?"
If MessageBox.Show(msg, "Invalid Cert Received", MessageBoxButtons.YesNo) = DialogResult.Yes Then
' User wants to accept the invalid cert. Accept it.
e.Accept = True
End If
End If
End Sub
Private Sub Imap1_CertificateRequested(ByVal sender As Object, e As EventArgs) Handles Imap1.CertificateRequested
' Create a new instance of CertificateListForm
Dim certForm as new CertificateListForm(True, True)
certForm.Text = "The Server Requested A Client Certificate"
' Show the CertificateListForm to the user and let them choose a certificate
If certForm.ShowDialog() = DialogResult.OK Then
' Set the Certificate property to the certificate the user selected.
Imap1.Certificate = certForm.SelectedCertificate
Else
MessageBox.Show("You must select a cert. SSL communication will fail.")
End If
End Sub |
| C# | Copy Code |
|---|
// Be sure to import the namespace by putting "using Dart.PowerTCP.Mail;"
// at the top of your class.
private void ImapSSLTest()
{
// Use explicit SSL
imap1.Security = Dart.PowerTCP.Mail.Security.Explicit;
// Login to the mail server
imap1.Login(server, user, pass);
// Send a NOOP command
ImapResponse response = imap1.Noop();
// Check the response
if(response.Status == ImapStatus.Ok)
Debug.WriteLine("Good response from server");
else
Debug.WriteLine("Response from server: " + response.Status);
// Logout
imap1.Logout();
}
private void imap1_CertificateReceived(object sender, Dart.PowerTCP.Mail.CertificateReceivedEventArgs e)
{
string msg = "";
// Check to see if the certificate is from a trusted root.
if(!e.TrustedRoot)
msg+= "This certificate is not from a trusted root\n";
// Check to see if the certificate has a valid date.
if(!e.ValidDate)
msg+= "This certificate does not have a valid date\n";
// Check to see if the certificate has a valid name.
if(!e.ValidName)
msg+= "This certificate does not have a valid name\n";
if(msg != "")
{
msg += "Would you like to accept this certificate anyway?";
if(MessageBox.Show(msg, "Invalid Cert Received", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
// User wants to accept the invalid cert. Accept it.
e.Accept = true;
}
}
}
private void imap1_CertificateRequested(object sender, System.EventArgs e)
{
// Create a new instance of CertificateListForm
CertificateListForm certForm = new CertificateListForm(true, true);
certForm.Text = "The Server Requested A Client Certificate";
// Show the CertificateListForm to the user and let them choose a certificate
if(certForm.ShowDialog() == DialogResult.OK)
{
// Set the Certificate property to the certificate the user selected.
imap1.Certificate = certForm.SelectedCertificate;
}
else
{
MessageBox.Show("You must select a cert. SSL communication will fail.");
}
} |
Remarks
Requirements
Target Platforms: Microsoft .NET Framework 2.0
See Also