Skip to content

Commit f522545

Browse files
made .Value private
1 parent 4f2c2e6 commit f522545

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+116
-122
lines changed

access-token-management/samples/Web/Controllers/HomeController.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public async Task<IActionResult> CallApiAsUserManual()
3636
{
3737
UserToken token = await _tokenManagementService.GetAccessTokenAsync(User);
3838
var client = _httpClientFactory.CreateClient();
39-
client.SetToken(token.AccessTokenType?.ToScheme().ToString()!, token.AccessToken.Value);
39+
client.SetToken(token.AccessTokenType?.ToScheme().ToString()!, token.AccessToken.ToString());
4040

4141
var response = await client.GetStringAsync($"{_configuration.ApiBaseUrl}test");
4242
ViewBag.Json = PrettyPrint(response);
@@ -50,7 +50,7 @@ public async Task<IActionResult> CallApiAsUserExtensionMethod()
5050
var client = _httpClientFactory.CreateClient();
5151
var scheme = token.AccessTokenType?.ToScheme().ToString()
5252
?? throw new InvalidOperationException("Scheme is empty");
53-
client.SetToken(scheme, token.AccessToken.Value);
53+
client.SetToken(scheme, token.AccessToken.ToString());
5454

5555
var response = await client.GetStringAsync($"{_configuration.ApiBaseUrl}test");
5656
ViewBag.Json = PrettyPrint(response);
@@ -92,8 +92,8 @@ public async Task<IActionResult> CallApiAsClientExtensionMethod()
9292
{
9393
ClientCredentialsToken token = await HttpContext.GetClientAccessTokenAsync();
9494
var client = _httpClientFactory.CreateClient();
95-
var scheme = token.AccessTokenType?.ToScheme().Value ?? throw new InvalidOperationException("Scheme is empty");
96-
client.SetToken(scheme, token.AccessToken.Value);
95+
var scheme = token.AccessTokenType?.ToScheme().ToString() ?? throw new InvalidOperationException("Scheme is empty");
96+
client.SetToken(scheme, token.AccessToken.ToString());
9797

9898
var response = await client.GetStringAsync($"{_configuration.ApiBaseUrl}test");
9999

access-token-management/samples/WebJarJwt/ClientAssertionService.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,15 +45,15 @@ public ClientAssertionService(
4545

4646
var descriptor = new SecurityTokenDescriptor
4747
{
48-
Issuer = config.ClientId?.Value,
48+
Issuer = config.ClientId?.ToString(),
4949
Audience = config.TokenEndpoint?.GetLeftPart(UriPartial.Authority),
5050
Expires = DateTime.UtcNow.AddMinutes(1),
5151
SigningCredentials = Credential,
5252

5353
Claims = new Dictionary<string, object>
5454
{
5555
{ JwtClaimTypes.JwtId, Guid.NewGuid().ToString() },
56-
{ JwtClaimTypes.Subject, config.ClientId?.Value! },
56+
{ JwtClaimTypes.Subject, config.ClientId?.ToString()! },
5757
{ JwtClaimTypes.IssuedAt, DateTime.UtcNow.ToEpochTime() }
5858
},
5959

@@ -86,7 +86,7 @@ public async Task<string> SignAuthorizeRequest(OpenIdConnectMessage message,
8686

8787
var descriptor = new SecurityTokenDescriptor
8888
{
89-
Issuer = config.ClientId?.Value,
89+
Issuer = config.ClientId?.ToString(),
9090
Audience = config.TokenEndpoint?.GetLeftPart(UriPartial.Authority),
9191
Expires = DateTime.UtcNow.AddMinutes(1),
9292
SigningCredentials = Credential,

access-token-management/samples/WebJarJwt/Controllers/HomeController.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public async Task<IActionResult> CallApiAsUserManual()
3333
{
3434
UserToken token = await _tokenManagementService.GetAccessTokenAsync(User);
3535
var client = _httpClientFactory.CreateClient();
36-
client.SetBearerToken(token.AccessToken?.Value!);
36+
client.SetBearerToken(token.AccessToken?.ToString()!);
3737

3838
var response = await client.GetStringAsync("https://demo.duendesoftware.com/api/test");
3939
ViewBag.Json = PrettyPrint(response);
@@ -45,7 +45,7 @@ public async Task<IActionResult> CallApiAsUserExtensionMethod()
4545
{
4646
UserToken token = await HttpContext.GetUserAccessTokenAsync();
4747
var client = _httpClientFactory.CreateClient();
48-
client.SetBearerToken(token.AccessToken.Value);
48+
client.SetBearerToken(token.AccessToken.ToString());
4949

5050
var response = await client.GetStringAsync("https://demo.duendesoftware.com/api/test");
5151
ViewBag.Json = PrettyPrint(response);
@@ -76,7 +76,7 @@ public async Task<IActionResult> CallApiAsClientExtensionMethod()
7676
{
7777
ClientCredentialsToken token = await HttpContext.GetClientAccessTokenAsync();
7878
var client = _httpClientFactory.CreateClient();
79-
client.SetBearerToken(token.AccessToken.Value);
79+
client.SetBearerToken(token.AccessToken.ToString());
8080

8181
var response = await client.GetStringAsync("https://demo.duendesoftware.com/api/test");
8282

access-token-management/samples/Worker/ClientAssertionService.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,19 +35,19 @@ public class ClientAssertionService(IOptionsMonitor<ClientCredentialsClient> opt
3535
{
3636
if (clientName == "demo.jwt")
3737
{
38-
var options1 = options.Get(clientName.Value);
38+
var options1 = options.Get(clientName.ToString());
3939

4040
var descriptor = new SecurityTokenDescriptor
4141
{
42-
Issuer = options1.ClientId?.Value,
42+
Issuer = options1.ClientId?.ToString(),
4343
Audience = options1.TokenEndpoint?.ToString(),
4444
Expires = DateTime.UtcNow.AddMinutes(1),
4545
SigningCredentials = Credential,
4646

4747
Claims = new Dictionary<string, object>
4848
{
4949
{ JwtClaimTypes.JwtId, Guid.NewGuid().ToString() },
50-
{ JwtClaimTypes.Subject, options1.ClientId?.Value! },
50+
{ JwtClaimTypes.Subject, options1.ClientId?.ToString()! },
5151
{ JwtClaimTypes.IssuedAt, DateTime.UtcNow.ToEpochTime() }
5252
}
5353
};

access-token-management/samples/Worker/WorkerManual.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
3333
client.BaseAddress = new Uri("https://demo.duendesoftware.com/api/");
3434

3535
ClientCredentialsToken token = await _tokenManagementService.GetAccessTokenAsync("demo", cancellationToken: stoppingToken);
36-
client.SetBearerToken(token.AccessToken.Value);
36+
client.SetBearerToken(token.AccessToken.ToString());
3737

3838
var response = await client.GetAsync("test", stoppingToken);
3939

access-token-management/samples/Worker/WorkerManualJwt.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
3333
client.BaseAddress = new Uri("https://demo.duendesoftware.com/api/");
3434

3535
ClientCredentialsToken token = await _tokenManagementService.GetAccessTokenAsync("demo.jwt", cancellationToken: stoppingToken);
36-
client.SetBearerToken(token.AccessToken.Value);
36+
client.SetBearerToken(token.AccessToken.ToString());
3737

3838
var response = await client.GetAsync("test", stoppingToken);
3939

access-token-management/samples/WorkerDI/ClientAssertionService.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,19 +35,19 @@ public class ClientAssertionService(IOptionsMonitor<ClientCredentialsClient> opt
3535
{
3636
if (clientName == "demo.jwt")
3737
{
38-
var options1 = options.Get(clientName.Value);
38+
var options1 = options.Get(clientName.ToString());
3939

4040
var descriptor = new SecurityTokenDescriptor
4141
{
42-
Issuer = options1.ClientId!.Value,
42+
Issuer = options1.ClientId!.ToString(),
4343
Audience = options1.TokenEndpoint!.ToString(),
4444
Expires = DateTime.UtcNow.AddMinutes(1),
4545
SigningCredentials = Credential,
4646

4747
Claims = new Dictionary<string, object>
4848
{
4949
{ JwtClaimTypes.JwtId, Guid.NewGuid().ToString() },
50-
{ JwtClaimTypes.Subject, options1.ClientId.Value },
50+
{ JwtClaimTypes.Subject, options1.ClientId.ToString() },
5151
{ JwtClaimTypes.IssuedAt, DateTime.UtcNow.ToEpochTime() }
5252
}
5353
};

access-token-management/samples/WorkerDI/WorkerManual.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
3333
client.BaseAddress = new Uri("https://demo.duendesoftware.com/api/");
3434

3535
ClientCredentialsToken token = await _tokenManagementService.GetAccessTokenAsync("demo", cancellationToken: stoppingToken);
36-
client.SetBearerToken(token.AccessToken.Value);
36+
client.SetBearerToken(token.AccessToken.ToString());
3737

3838
var response = await client.GetAsync("test", stoppingToken);
3939

access-token-management/samples/WorkerDI/WorkerManualJwt.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
3333
client.BaseAddress = new Uri("https://demo.duendesoftware.com/api/");
3434

3535
ClientCredentialsToken token = await _tokenManagementService.GetAccessTokenAsync("demo.jwt");
36-
client.SetBearerToken(token.AccessToken.Value);
36+
client.SetBearerToken(token.AccessToken.ToString());
3737

3838
var response = await client.GetAsync("test", stoppingToken);
3939

access-token-management/src/AccessTokenManagement.OpenIdConnect/HttpContextExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ public static async Task<TokenResult<ClientCredentialsToken>> GetClientAccessTok
8484
}
8585

8686
const string AuthenticationPropertiesDPoPKey = ".Token.dpop_proof_key";
87-
internal static void SetProofKey(this AuthenticationProperties properties, DPoPJsonWebKey key) => properties.Items[AuthenticationPropertiesDPoPKey] = key.Value;
87+
internal static void SetProofKey(this AuthenticationProperties properties, DPoPJsonWebKey key) => properties.Items[AuthenticationPropertiesDPoPKey] = key.ToString();
8888
internal static DPoPJsonWebKey? GetProofKey(this AuthenticationProperties properties)
8989
{
9090
if (properties.Items.TryGetValue(AuthenticationPropertiesDPoPKey, out var key))

access-token-management/src/AccessTokenManagement.OpenIdConnect/Internal/AuthenticationSessionUserAccessTokenStore.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public async Task<TokenResult<TokenForParameters>> GetTokenAsync(
3636
// we use String.Empty as the key for a null SignInScheme
3737
if (!cache.TryGetValue(parameters.SignInScheme, out var result))
3838
{
39-
result = await contextAccessor.HttpContext!.AuthenticateAsync(parameters.SignInScheme?.Value)
39+
result = await contextAccessor.HttpContext!.AuthenticateAsync(parameters.SignInScheme?.ToString())
4040
.ConfigureAwait(false);
4141
}
4242

@@ -79,7 +79,7 @@ public async Task StoreTokenAsync(
7979
if (!cache.TryGetValue(parameters.SignInScheme, out var result))
8080
{
8181
result = await contextAccessor.HttpContext!
82-
.AuthenticateAsync(parameters.SignInScheme?.Value)
82+
.AuthenticateAsync(parameters.SignInScheme?.ToString())
8383
.ConfigureAwait(false);
8484
}
8585

@@ -100,12 +100,12 @@ public async Task StoreTokenAsync(
100100

101101
var scheme = await tokensInProps.GetSchemeAsync(parameters, cancellationToken);
102102

103-
await contextAccessor.HttpContext!.SignInAsync(scheme.Value, principal, result.Properties)
103+
await contextAccessor.HttpContext!.SignInAsync(scheme.ToString(), principal, result.Properties)
104104
.ConfigureAwait(false);
105105

106106
// add to the cache so if GetTokenAsync is called again, we will use the updated property values
107107
cache[parameters.SignInScheme] =
108-
AuthenticateResult.Success(new AuthenticationTicket(principal, result.Properties, scheme.Value));
108+
AuthenticateResult.Success(new AuthenticationTicket(principal, result.Properties, scheme.ToString()));
109109
}
110110

111111
/// <inheritdoc/>

access-token-management/src/AccessTokenManagement.OpenIdConnect/Internal/ConfigureOpenIdConnectOptions.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public void Configure(OpenIdConnectOptions options)
5151
/// <inheritdoc/>
5252
public void Configure(string? name, OpenIdConnectOptions options)
5353
{
54-
if (_configScheme.Value == name)
54+
if (_configScheme.ToString() == name)
5555
{
5656
// add the event handling to enable DPoP for this OIDC client
5757
options.Events.OnRedirectToIdentityProvider = CreateCallback(options.Events.OnRedirectToIdentityProvider);
@@ -88,7 +88,7 @@ async Task Callback(RedirectContext context)
8888
context.Properties.SetProofKey(key);
8989

9090
// pass jkt to authorize endpoint
91-
context.ProtocolMessage.Parameters[OidcConstants.AuthorizeRequest.DPoPKeyThumbprint] = jkt.Value;
91+
context.ProtocolMessage.Parameters[OidcConstants.AuthorizeRequest.DPoPKeyThumbprint] = jkt.ToString();
9292
}
9393
}
9494
}

access-token-management/src/AccessTokenManagement.OpenIdConnect/Internal/OpenIdConnectConfigurationService.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public async Task<OpenIdConnectClientConfiguration> GetOpenIdConnectConfiguratio
3636
configScheme = defaultScheme.Name;
3737
}
3838

39-
var options = oidcOptionsMonitor.Get(configScheme.Value);
39+
var options = oidcOptionsMonitor.Get(configScheme.ToString());
4040

4141
OpenIdConnectConfiguration configuration;
4242
try

access-token-management/src/AccessTokenManagement.OpenIdConnect/Internal/StoreTokensInAuthenticationProperties.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -110,23 +110,23 @@ public async Task SetUserToken(
110110
{
111111
var tokenNames = GetTokenNamesWithScheme(parameters);
112112

113-
authenticationProperties.Items[tokenNames.Token] = token.AccessToken.Value;
114-
authenticationProperties.Items[tokenNames.ClientId] = token.ClientId.Value;
115-
authenticationProperties.Items[tokenNames.IdentityToken] = token.IdentityToken?.Value;
116-
authenticationProperties.Items[tokenNames.TokenType] = token.AccessTokenType?.Value;
113+
authenticationProperties.Items[tokenNames.Token] = token.AccessToken.ToString();
114+
authenticationProperties.Items[tokenNames.ClientId] = token.ClientId.ToString();
115+
authenticationProperties.Items[tokenNames.IdentityToken] = token.IdentityToken?.ToString();
116+
authenticationProperties.Items[tokenNames.TokenType] = token.AccessTokenType?.ToString();
117117
if (token.DPoPJsonWebKey != null)
118118
{
119-
authenticationProperties.Items[tokenNames.DPoPKey] = token.DPoPJsonWebKey.Value;
119+
authenticationProperties.Items[tokenNames.DPoPKey] = token.DPoPJsonWebKey.ToString();
120120
}
121121
authenticationProperties.Items[tokenNames.Expires] = token.Expiration.ToString("o", CultureInfo.InvariantCulture);
122122

123123
if (token.RefreshToken != null)
124124
{
125-
authenticationProperties.Items[tokenNames.RefreshToken] = token.RefreshToken.Value;
125+
authenticationProperties.Items[tokenNames.RefreshToken] = token.RefreshToken.ToString();
126126
}
127127

128128
var authenticationScheme = await GetSchemeAsync(parameters, cancellationToken);
129-
var cookieOptions = cookieOptionsMonitor.Get(authenticationScheme.Value);
129+
var cookieOptions = cookieOptionsMonitor.Get(authenticationScheme.ToString());
130130

131131
if (authenticationProperties.AllowRefresh == true ||
132132
(authenticationProperties.AllowRefresh == null && cookieOptions.SlidingExpiration))
@@ -153,7 +153,7 @@ public async Task SetUserToken(
153153
if (appendChallengeScheme)
154154
{
155155
var scheme = parameters?.ChallengeScheme ?? throw new InvalidOperationException("Attempt to append challenge scheme to token names, but no challenge scheme specified in UserTokenRequestParameters");
156-
token = tokens.SingleOrDefault(t => t.Key == ChallengeSuffix(key, scheme.Value)).Value;
156+
token = tokens.SingleOrDefault(t => t.Key == ChallengeSuffix(key, scheme.ToString())).Value;
157157
}
158158

159159
if (token.IsMissing())

access-token-management/src/AccessTokenManagement.OpenIdConnect/Internal/UserTokenEndpointService.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ public async Task<TokenResult<UserToken>> RefreshAccessTokenAsync(
4545
var request = new RefreshTokenRequest
4646
{
4747
Address = tokenEndpoint.ToString(),
48-
ClientId = oidc.ClientId?.Value ?? throw new InvalidOperationException("ClientID is null"),
49-
ClientSecret = oidc.ClientSecret?.Value ?? throw new InvalidOperationException("ClientSecret is null"),
48+
ClientId = oidc.ClientId?.ToString() ?? throw new InvalidOperationException("ClientID is null"),
49+
ClientSecret = oidc.ClientSecret?.ToString()?? throw new InvalidOperationException("ClientSecret is null"),
5050
ClientCredentialStyle = options.Value.ClientCredentialStyle,
5151
RefreshToken = refreshToken.RefreshToken.ToString()
5252
};
@@ -55,12 +55,12 @@ public async Task<TokenResult<UserToken>> RefreshAccessTokenAsync(
5555

5656
if (parameters.Scope != null)
5757
{
58-
request.Scope = parameters.Scope.Value;
58+
request.Scope = parameters.Scope.ToString();
5959
}
6060

6161
if (parameters.Resource != null)
6262
{
63-
request.Resource.Add(parameters.Resource.Value);
63+
request.Resource.Add(parameters.Resource.ToString());
6464
}
6565

6666
if (parameters.Assertion != null)
@@ -94,7 +94,7 @@ public async Task<TokenResult<UserToken>> RefreshAccessTokenAsync(
9494
DPoPJsonWebKey = dPoPJsonWebKey,
9595
}, cancellationToken);
9696

97-
request.DPoPProofToken = proof?.ProofToken.Value;
97+
request.DPoPProofToken = proof?.ProofToken.ToString();
9898
}
9999

100100
logger.SendingRefreshTokenRequest(LogLevel.Debug, tokenEndpoint);
@@ -117,7 +117,7 @@ public async Task<TokenResult<UserToken>> RefreshAccessTokenAsync(
117117
};
118118
var proof = await dPoPProofService.CreateProofTokenAsync(dPoPProofRequest, cancellationToken);
119119

120-
request.DPoPProofToken = proof?.ProofToken.Value;
120+
request.DPoPProofToken = proof?.ProofToken.ToString();
121121

122122
if (request.DPoPProofToken != null)
123123
{
@@ -176,11 +176,11 @@ public async Task RevokeRefreshTokenAsync(
176176
{
177177
Address = revocationEndpoint.ToString(),
178178

179-
ClientId = oidc.ClientId?.Value ?? throw new InvalidOperationException("ClientID is null"),
180-
ClientSecret = oidc.ClientSecret?.Value ?? throw new InvalidOperationException("ClientSecret is null"),
179+
ClientId = oidc.ClientId?.ToString() ?? throw new InvalidOperationException("ClientID is null"),
180+
ClientSecret = oidc.ClientSecret?.ToString() ?? throw new InvalidOperationException("ClientSecret is null"),
181181
ClientCredentialStyle = options.Value.ClientCredentialStyle,
182182

183-
Token = refreshToken.Value,
183+
Token = refreshToken.ToString(),
184184
TokenTypeHint = OidcConstants.TokenTypes.RefreshToken
185185
};
186186

access-token-management/src/AccessTokenManagement.OpenIdConnect/Internal/UserTokenRequestConcurrencyControl.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@ public async Task<TokenResult<UserToken>> ExecuteWithConcurrencyControl(UserRefr
2121
{
2222
try
2323
{
24-
return await Dictionary.GetOrAdd(key.RefreshToken.Value, _ => new Lazy<Task<TokenResult<UserToken>>>(tokenRetriever)).Value.ConfigureAwait(false);
24+
return await Dictionary.GetOrAdd(key.RefreshToken.ToString(), _ => new Lazy<Task<TokenResult<UserToken>>>(tokenRetriever)).Value.ConfigureAwait(false);
2525
}
2626
finally
2727
{
28-
Dictionary.TryRemove(key.RefreshToken.Value, out _);
28+
Dictionary.TryRemove(key.RefreshToken.ToString(), out _);
2929
}
3030
}
3131
}

access-token-management/src/AccessTokenManagement/AccessTokenString.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public static bool TryParse(string value, [NotNullWhen(true)] out AccessTokenStr
2727
IStringValue<AccessTokenString>.TryBuildValidatedObject(value, Validators, out parsed, out errors);
2828

2929

30-
public static AccessTokenString Load(string result) => new(result);
30+
static AccessTokenString IStringValue<AccessTokenString>.Load(string result) => new(result);
3131

3232
public static AccessTokenString Parse(string value) => StringParsers<AccessTokenString>.Parse(value);
3333
}

access-token-management/src/AccessTokenManagement/AccessTokenType.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public record AccessTokenType : IStringValue<AccessTokenType>
1919

2020
private AccessTokenType(string value) => Value = value;
2121

22-
public string Value { get; }
22+
private string Value { get; }
2323

2424
public static implicit operator AccessTokenType(string value) => Parse(value);
2525

@@ -28,7 +28,7 @@ public static bool TryParse(string value, [NotNullWhen(true)] out AccessTokenTyp
2828
.TryBuildValidatedObject(value, Validators, out parsed, out errors);
2929

3030

31-
public static AccessTokenType Load(string result) => new(result);
31+
static AccessTokenType IStringValue<AccessTokenType>.Load(string result) => new(result);
3232

3333
public static AccessTokenType Parse(string value) =>
3434
StringParsers<AccessTokenType>.Parse(value);

access-token-management/src/AccessTokenManagement/ClientCredentialsCacheKey.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public record ClientCredentialsCacheKey : IStringValue<ClientCredentialsCacheKey
1818

1919
private ClientCredentialsCacheKey(string value) => Value = value;
2020

21-
public string Value { get; }
21+
private string Value { get; }
2222

2323
public static ClientCredentialsCacheKey Parse(string value) => StringParsers<ClientCredentialsCacheKey>.Parse(value);
2424

0 commit comments

Comments
 (0)