Skip to content

Commit e3f4879

Browse files
committed
consolidate builder for sqlauthparameters and use serverSpn as resource
1 parent 7f1f800 commit e3f4879

File tree

4 files changed

+26
-30
lines changed

4 files changed

+26
-30
lines changed

src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SqlInternalConnectionTds.cs

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2435,13 +2435,10 @@ internal SqlFedAuthToken GetFedAuthToken(SqlFedAuthInfo fedAuthInfo)
24352435
try
24362436
{
24372437
var authParamsBuilder = new SqlAuthenticationParameters.Builder(
2438-
authenticationMethod: ConnectionOptions.Authentication,
2439-
resource: fedAuthInfo.spn,
2440-
authority: fedAuthInfo.stsurl,
2441-
serverName: ConnectionOptions.DataSource,
2442-
databaseName: ConnectionOptions.InitialCatalog)
2443-
.WithConnectionId(_clientConnectionId)
2444-
.WithConnectionTimeout(ConnectionOptions.ConnectTimeout);
2438+
this,
2439+
resource: fedAuthInfo.spn,
2440+
authority: fedAuthInfo.stsurl);
2441+
24452442
switch (ConnectionOptions.Authentication)
24462443
{
24472444
case SqlAuthenticationMethod.ActiveDirectoryIntegrated:

src/Microsoft.Data.SqlClient/netfx/src/Microsoft/Data/SqlClient/SqlInternalConnectionTds.cs

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ sealed internal class SqlInternalConnectionTds : SqlInternalConnection, IDisposa
137137
// The Federated Authentication returned by TryGetFedAuthTokenLocked or GetFedAuthToken.
138138
SqlFedAuthToken _fedAuthToken = null;
139139
internal byte[] _accessTokenInBytes;
140-
internal readonly Func<SqlAuthenticationParameters, CancellationToken,Task<SqlAuthenticationToken>> _accessTokenCallback;
140+
internal readonly Func<SqlAuthenticationParameters, CancellationToken, Task<SqlAuthenticationToken>> _accessTokenCallback;
141141

142142
private readonly ActiveDirectoryAuthenticationTimeoutRetryHelper _activeDirectoryAuthTimeoutRetryHelper;
143143

@@ -1651,12 +1651,12 @@ private void OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectio
16511651
else
16521652
{
16531653
_timeoutErrorInternal.SetFailoverScenario(false); // not a failover scenario
1654-
LoginNoFailover(dataSource,
1655-
newPassword,
1656-
newSecurePassword,
1654+
LoginNoFailover(dataSource,
1655+
newPassword,
1656+
newSecurePassword,
16571657
redirectedUserInstance,
1658-
connectionOptions,
1659-
credential,
1658+
connectionOptions,
1659+
credential,
16601660
timeout);
16611661
}
16621662

@@ -2625,7 +2625,7 @@ internal void OnFedAuthInfo(SqlFedAuthInfo fedAuthInfo)
26252625

26262626
if (_newDbConnectionPoolAuthenticationContext != null)
26272627
{
2628-
_dbConnectionPool.AuthenticationContexts.TryAdd(_dbConnectionPoolAuthenticationContextKey, _newDbConnectionPoolAuthenticationContext);
2628+
_dbConnectionPool.AuthenticationContexts.TryAdd(_dbConnectionPoolAuthenticationContextKey, _newDbConnectionPoolAuthenticationContext);
26292629
}
26302630
}
26312631
}
@@ -2739,13 +2739,10 @@ internal SqlFedAuthToken GetFedAuthToken(SqlFedAuthInfo fedAuthInfo)
27392739
try
27402740
{
27412741
var authParamsBuilder = new SqlAuthenticationParameters.Builder(
2742-
authenticationMethod: ConnectionOptions.Authentication,
2742+
this,
27432743
resource: fedAuthInfo.spn,
2744-
authority: fedAuthInfo.stsurl,
2745-
serverName: ConnectionOptions.DataSource,
2746-
databaseName: ConnectionOptions.InitialCatalog)
2747-
.WithConnectionId(_clientConnectionId)
2748-
.WithConnectionTimeout(ConnectionOptions.ConnectTimeout);
2744+
authority: fedAuthInfo.stsurl);
2745+
27492746
switch (ConnectionOptions.Authentication)
27502747
{
27512748
case SqlAuthenticationMethod.ActiveDirectoryIntegrated:

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using System.Buffers;
33
using System.Diagnostics;
44
using Microsoft.Data.Common;
5+
using static Microsoft.Data.SqlClient.TdsEnums;
56

67
#nullable enable
78

@@ -75,11 +76,10 @@ private bool RunGenerateSspiClientContext(ReadOnlySpan<byte> incomingBlob, IBuff
7576
private static SqlAuthenticationParameters CreateSqlAuthParams(SqlInternalConnectionTds connection, string serverSpn)
7677
{
7778
var auth = new SqlAuthenticationParameters.Builder(
78-
authenticationMethod: connection.ConnectionOptions.Authentication,
79-
resource: null,
80-
authority: null,
81-
serverName: serverSpn,
82-
connection.ConnectionOptions.InitialCatalog);
79+
connection,
80+
resource: serverSpn,
81+
authority: null);
82+
8383

8484
if (connection.ConnectionOptions.UserID is { } userId)
8585
{

src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlAuthenticationParameters.cs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ protected SqlAuthenticationParameters(
4949
string authority,
5050
string userId,
5151
string password,
52-
Guid connectionId,
52+
Guid connectionId,
5353
int connectionTimeout)
5454
{
5555
AuthenticationMethod = authenticationMethod;
@@ -149,11 +149,13 @@ public Builder WithConnectionTimeout(int timeout)
149149
return this;
150150
}
151151

152-
internal Builder(SqlAuthenticationMethod authenticationMethod, string resource, string authority, string serverName, string databaseName)
152+
internal Builder(SqlInternalConnectionTds conn, string resource, string authority)
153153
{
154-
_authenticationMethod = authenticationMethod;
155-
_serverName = serverName;
156-
_databaseName = databaseName;
154+
_authenticationMethod = conn.ConnectionOptions.Authentication;
155+
_serverName = conn.ConnectionOptions.DataSource;
156+
_databaseName = conn.ConnectionOptions.InitialCatalog;
157+
_connectionTimeout = conn.ConnectionOptions.ConnectTimeout;
158+
_connectionId = conn.ClientConnectionId;
157159
_resource = resource;
158160
_authority = authority;
159161
}

0 commit comments

Comments
 (0)