Skip to content

Commit 72e8631

Browse files
committed
use arrays again
1 parent 808edaf commit 72e8631

File tree

4 files changed

+13
-14
lines changed

4 files changed

+13
-14
lines changed

src/Microsoft.Data.SqlClient/netcore/src/Common/src/System/Net/Security/NegotiateStreamPal.Windows.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ internal static string QueryContextAuthenticationPackage(SafeDeleteContext secur
7171
internal static SecurityStatusPal InitializeSecurityContext(
7272
SafeFreeCredentials credentialsHandle,
7373
ref SafeDeleteContext securityContext,
74-
string spn,
74+
string[] spn,
7575
ContextFlagsPal requestedContextFlags,
7676
SecurityBuffer[] inSecurityBufferArray,
7777
SecurityBuffer outSecurityBuffer,
@@ -82,7 +82,7 @@ internal static SecurityStatusPal InitializeSecurityContext(
8282
GlobalSSPI.SSPIAuth,
8383
credentialsHandle,
8484
ref securityContext,
85-
spn,
85+
spn[0],
8686
ContextFlagsAdapterPal.GetInteropFromContextFlagsPal(requestedContextFlags),
8787
Interop.SspiCli.Endianness.SECURITY_NETWORK_DREP,
8888
inSecurityBufferArray,

src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SNI/SNIProxy.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@ internal class SNIProxy
3434
/// <param name="sspiClientContextStatus">SSPI client context status</param>
3535
/// <param name="receivedBuff">Receive buffer</param>
3636
/// <param name="sendWriter">Writer for send buffer</param>
37-
/// <param name="spn">Service Principal Name</param>
37+
/// <param name="serverNames">Service Principal Name</param>
3838
/// <returns>SNI error code</returns>
39-
internal static void GenSspiClientContext(SspiClientContextStatus sspiClientContextStatus, ReadOnlyMemory<byte> receivedBuff, IBufferWriter<byte> sendWriter, string spn)
39+
internal static void GenSspiClientContext(SspiClientContextStatus sspiClientContextStatus, ReadOnlyMemory<byte> receivedBuff, IBufferWriter<byte> sendWriter, string serverNames)
4040
{
4141
// TODO: this should use ReadOnlyMemory all the way through
4242
byte[] array = null;
@@ -47,10 +47,10 @@ internal static void GenSspiClientContext(SspiClientContextStatus sspiClientCont
4747
receivedBuff.CopyTo(array);
4848
}
4949

50-
GenSspiClientContext(sspiClientContextStatus, array, sendWriter, spn);
50+
GenSspiClientContext(sspiClientContextStatus, array, sendWriter, serverNames);
5151
}
5252

53-
private static void GenSspiClientContext(SspiClientContextStatus sspiClientContextStatus, byte[] receivedBuff, IBufferWriter<byte> sendWriter, string spn)
53+
private static void GenSspiClientContext(SspiClientContextStatus sspiClientContextStatus, byte[] receivedBuff, IBufferWriter<byte> sendWriter, string[] serverNames)
5454
{
5555
SafeDeleteContext securityContext = sspiClientContextStatus.SecurityContext;
5656
ContextFlagsPal contextFlags = sspiClientContextStatus.ContextFlags;
@@ -85,7 +85,7 @@ private static void GenSspiClientContext(SspiClientContextStatus sspiClientConte
8585
SecurityStatusPal statusCode = NegotiateStreamPal.InitializeSecurityContext(
8686
credentialsHandle,
8787
ref securityContext,
88-
spn,
88+
serverNames,
8989
requestedContextFlags,
9090
inSecurityBufferArray,
9191
outSecurityBuffer,

src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SSPI/ManagedSSPIContextProvider.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ protected override void GenerateSspiClientContext(ReadOnlyMemory<byte> incomingB
1616
{
1717
_sspiClientContextStatus ??= new SspiClientContextStatus();
1818

19-
SNIProxy.GenSspiClientContext(_sspiClientContextStatus, incomingBlob, outgoingBlobWriter, AuthenticationParameters.ServerName);
19+
SNIProxy.GenSspiClientContext(_sspiClientContextStatus, incomingBlob, outgoingBlobWriter, _serverNames);
2020
SqlClientEventSource.Log.TryTraceEvent("TdsParserStateObjectManaged.GenerateSspiClientContext | Info | Session Id {0}", _physicalStateObj.SessionId);
2121
}
2222
}

src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SSPI/SSPIContextProvider.cs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,21 +13,20 @@ internal abstract class SSPIContextProvider
1313
private ServerInfo _serverInfo = null!;
1414
private protected TdsParserStateObject _physicalStateObj = null!;
1515
private SqlAuthenticationParameters? _parameters;
16+
private protected string[] _serverNames = Array.Empty<string>();
17+
18+
internal void Initialize(ServerInfo serverInfo, TdsParserStateObject physicalStateObj, TdsParser parser, string serverName)
19+
=> Initialize(serverInfo, physicalStateObj, parser, new[] { serverName });
1620

1721
internal void Initialize(ServerInfo serverInfo, TdsParserStateObject physicalStateObj, TdsParser parser, string[] serverNames)
1822
{
1923
Debug.Assert(serverNames.Length > 0);
2024

21-
Initialize(serverInfo, physicalStateObj, parser, serverNames[0]);
22-
}
23-
24-
internal void Initialize(ServerInfo serverInfo, TdsParserStateObject physicalStateObj, TdsParser parser, string serverName)
25-
{
2625
_parser = parser;
2726
_physicalStateObj = physicalStateObj;
2827
_serverInfo = serverInfo;
2928

30-
_parameters = InitializeAuthenticationParameters(parser.Connection, serverName);
29+
_parameters = InitializeAuthenticationParameters(parser.Connection, serverNames[0]);
3130

3231
Initialize();
3332
}

0 commit comments

Comments
 (0)