mirror of
https://github.com/dotnet/MQTTnet.git
synced 2026-10-21 04:03:05 +08:00
Added certificate validation callback for .NET framework 4.x (#1806)
* Added certificate validation callback for .NET framework 4.x * Update ReleaseNotes.md * Also expose sender to event arguments --------- Co-authored-by: Christian <6939810+chkr1011@users.noreply.github.com>
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
* [Client] Fixed _PlatformNotSupportedException_ when using Blazor (#1755, thanks to @Nickztar).
|
* [Client] Fixed _PlatformNotSupportedException_ when using Blazor (#1755, thanks to @Nickztar).
|
||||||
|
* [Client] Added support for _RemoteCertificateValidationCallback_ for .NET 4.5.2, 4.6.1 and 4.8 (#1806, thanks to @troky).
|
||||||
* [Client] Fixed wrong logging of obsolete feature when connection was not successful (#1801, thanks to @ramonsmits).
|
* [Client] Fixed wrong logging of obsolete feature when connection was not successful (#1801, thanks to @ramonsmits).
|
||||||
* [Client] Fixed _NullReferenceException_ when performing several actions when not connected (#1800, thanks to @ramonsmits).
|
* [Client] Fixed _NullReferenceException_ when performing several actions when not connected (#1800, thanks to @ramonsmits).
|
||||||
* [Server] Fixed _NullReferenceException_ in retained messages management (#1762, thanks to @logicaloud).
|
* [Server] Fixed _NullReferenceException_ in retained messages management (#1762, thanks to @logicaloud).
|
||||||
|
|||||||
@@ -14,8 +14,14 @@ namespace MQTTnet.Client
|
|||||||
|
|
||||||
public X509Chain Chain { get; set; }
|
public X509Chain Chain { get; set; }
|
||||||
|
|
||||||
public SslPolicyErrors SslPolicyErrors { get; set; }
|
|
||||||
|
|
||||||
public IMqttClientChannelOptions ClientOptions { get; set; }
|
public IMqttClientChannelOptions ClientOptions { get; set; }
|
||||||
|
#if NET452 || NET461 || NET48
|
||||||
|
/// <summary>
|
||||||
|
/// Can be a host string name or an object derived from WebRequest.
|
||||||
|
/// </summary>
|
||||||
|
public object Sender { get; set; }
|
||||||
|
#endif
|
||||||
|
|
||||||
|
public SslPolicyErrors SslPolicyErrors { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -248,12 +248,20 @@ namespace MQTTnet.Implementations
|
|||||||
throw new NotSupportedException("Remote certificate validation callback is not supported when using 'netstandard2.0'.");
|
throw new NotSupportedException("Remote certificate validation callback is not supported when using 'netstandard2.0'.");
|
||||||
#elif WINDOWS_UWP
|
#elif WINDOWS_UWP
|
||||||
throw new NotSupportedException("Remote certificate validation callback is not supported when using 'uap10.0'.");
|
throw new NotSupportedException("Remote certificate validation callback is not supported when using 'uap10.0'.");
|
||||||
#elif NET452
|
#elif NET452 || NET461 || NET48
|
||||||
throw new NotSupportedException("Remote certificate validation callback is not supported when using 'net452'.");
|
ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) =>
|
||||||
#elif NET461
|
{
|
||||||
throw new NotSupportedException("Remote certificate validation callback is not supported when using 'net461'.");
|
var context = new MqttClientCertificateValidationEventArgs
|
||||||
#elif NET48
|
{
|
||||||
throw new NotSupportedException("Remote certificate validation callback is not supported when using 'net48'.");
|
Sender = sender,
|
||||||
|
Certificate = certificate,
|
||||||
|
Chain = chain,
|
||||||
|
SslPolicyErrors = sslPolicyErrors,
|
||||||
|
ClientOptions = _options
|
||||||
|
};
|
||||||
|
|
||||||
|
return certificateValidationHandler(context);
|
||||||
|
};
|
||||||
#else
|
#else
|
||||||
clientWebSocket.Options.RemoteCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) =>
|
clientWebSocket.Options.RemoteCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) =>
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user