Dart.PowerTCP.SslSockets Namespace > SslStream Class > SslStream Constructor : SslStream Constructor(Stream,Certificate,Boolean,Boolean,String,SecureProtocol) |
Creates a new instance of SslStream.
[Visual Basic]
Public Function New( _
ByVal coreStream As Stream, _
ByVal cert As Certificate, _
ByVal client As Boolean, _
ByVal clientAuthentication As Boolean, _
ByVal remoteName As String, _
ByVal protocol As SecureProtocol _
)
[C#]
public SslStream(
Stream coreStream,
Certificate cert,
bool client,
bool clientAuthentication,
string remoteName,
SecureProtocol protocol
);
[C++]
public: SslStream(
Stream* coreStream,
Certificate* cert,
bool client,
bool clientAuthentication,
string* remoteName,
SecureProtocol protocol
)
[C++/CLI]
public:
SslStream(
Stream^ coreStream,
Certificate^ cert,
bool client,
bool clientAuthentication,
String^ remoteName,
SecureProtocol protocol
)
This constructor creates a "ready-to-use" SslStream initialized with all supplied parameters. Optionally, use the SslStream(Stream) constructor and set the properties of the SslStream.
The following example demonstrates creating a simple secure client.
[Visual Basic]
Private Sub SecureTest()
'Allow component to negotiate best security option
Tcp1.SecureProtocol = SecureProtocol.Auto
' Connect to a secure echo server.
Tcp1.Connect("mysecureserver", 7)
' Send secure data
Tcp1.Send("Test")
' Receive and display secure data
System.Diagnostics.Debug.WriteLine(Tcp1.Receive().ToString())
' Close the connection
Tcp1.Close()
End Sub
Private Sub Tcp1_CertificateRequested(ByVal sender As Object, ByVal e As System.EventArgs) Handles Tcp1.CertificateRequested
'The server has requested client authentication
'Allow the user to select a certificate
Dim certform As New CertificateListForm(True, True)
If (certform.ShowDialog(Me) = DialogResult.OK) Then
Tcp1.Certificate = certform.SelectedCertificate
End If
End Sub
Private Sub Tcp1_CertificateReceived(ByVal sender As Object, ByVal e As Dart.PowerTCP.SslSockets.CertificateReceivedEventArgs) Handles Tcp1.CertificateReceived
'If the server's certificate is invalid for any reason,
'the user can decide whether to proceed
Dim msg As String = "The certificate was invalid for the following reason(s)" + vbLf
' 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" + vbLf
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" + vbLf
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" + vbLf
End If
If (Not e.Accept) Then
msg += "Would you like to accept this certificate anyway?"
If (MessageBox.Show(msg, "Invalid Cert Received", MessageBoxButtons.YesNo) = DialogResult.Yes) Then
e.Accept = True
End If
End If
End Sub
[C#]
private void SecureTest()
{
//Allow component to negotiate best security option
tcp1.SecureProtocol = SecureProtocol.Auto;
// Connect to a secure echo server.
tcp1.Connect("mysecureserver", 7);
// Send secure data
tcp1.Send("Test");
// Receive and display secure data
System.Diagnostics.Debug.WriteLine(tcp1.Receive().ToString());
// Close the connection
tcp1.Close();
}
private void tcp1_CertificateRequested(object sender, System.EventArgs e)
{
//The server has requested client authentication
//Allow the user to select a certificate
CertificateListForm certform = new CertificateListForm(true,
true);
if(certform.ShowDialog(this) ==
DialogResult.OK)
tcp1.Certificate = certform.SelectedCertificate;
}
private void tcp1_CertificateReceived(object sender, CertificateReceivedEventArgs e)
{
//If the server's certificate is invalid for any reason,
//the user can decide whether to proceed
string msg = "The certificate was invalid for the following
reason(s)\n";
// 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(!e.Accept)
{
msg += "Would you like to accept this certificate anyway?";
if(MessageBox.Show(msg, "Invalid
Cert Received", MessageBoxButtons.YesNo) == DialogResult.Yes)
e.Accept = true;
}
}
Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family
SslStream Class | SslStream Members | Overload List
Send comments on this topic.
Documentation version 1.1.2.0.
© 2008 Dart Communications. All rights reserved.