mirror of
https://github.com/dotnet/MQTTnet.git
synced 2026-10-15 00:15:15 +08:00
* Add Directory.Build.props. * Adjust Analysis related properties and add conditional enablement for ContinuousIntegrationBuild. * Adopt new changes in master --------- Co-authored-by: christian <6939810+chkr1011@users.noreply.github.com>
67 lines
1.8 KiB
C#
67 lines
1.8 KiB
C#
// Licensed to the .NET Foundation under one or more agreements.
|
|
// The .NET Foundation licenses this file to you under the MIT license.
|
|
// See the LICENSE file in the project root for more information.
|
|
|
|
using System.Text;
|
|
using MQTTnet.Packets;
|
|
|
|
namespace MQTTnet.Server.EnhancedAuthentication;
|
|
|
|
public sealed class ExchangeEnhancedAuthenticationOptionsFactory
|
|
{
|
|
readonly ExchangeEnhancedAuthenticationOptions _options = new();
|
|
|
|
public ExchangeEnhancedAuthenticationOptions Build()
|
|
{
|
|
return _options;
|
|
}
|
|
|
|
public ExchangeEnhancedAuthenticationOptionsFactory WithAuthenticationData(byte[] authenticationData)
|
|
{
|
|
_options.AuthenticationData = authenticationData;
|
|
|
|
return this;
|
|
}
|
|
|
|
public ExchangeEnhancedAuthenticationOptionsFactory WithAuthenticationData(string authenticationData)
|
|
{
|
|
if (authenticationData == null)
|
|
{
|
|
_options.AuthenticationData = null;
|
|
}
|
|
else
|
|
{
|
|
_options.AuthenticationData = Encoding.UTF8.GetBytes(authenticationData);
|
|
}
|
|
|
|
return this;
|
|
}
|
|
|
|
public ExchangeEnhancedAuthenticationOptionsFactory WithReasonString(string reasonString)
|
|
{
|
|
_options.ReasonString = reasonString;
|
|
|
|
return this;
|
|
}
|
|
|
|
public ExchangeEnhancedAuthenticationOptionsFactory WithUserProperties(List<MqttUserProperty> userProperties)
|
|
{
|
|
_options.UserProperties = userProperties;
|
|
|
|
return this;
|
|
}
|
|
|
|
public ExchangeEnhancedAuthenticationOptionsFactory WithUserProperty(string name, string value)
|
|
{
|
|
ArgumentNullException.ThrowIfNull(name);
|
|
|
|
if (_options.UserProperties == null)
|
|
{
|
|
_options.UserProperties = new List<MqttUserProperty>();
|
|
}
|
|
|
|
_options.UserProperties.Add(new MqttUserProperty(name, value));
|
|
|
|
return this;
|
|
}
|
|
} |