diff --git a/src/OpenIddict.Abstractions/Primitives/OpenIddictExtensions.cs b/src/OpenIddict.Abstractions/Primitives/OpenIddictExtensions.cs index 73ac83d2..d5ebd167 100644 --- a/src/OpenIddict.Abstractions/Primitives/OpenIddictExtensions.cs +++ b/src/OpenIddict.Abstractions/Primitives/OpenIddictExtensions.cs @@ -1277,7 +1277,7 @@ public static class OpenIddictExtensions foreach (var element in value.EnumerateArray()) { - var item = element.GetString()!; + var item = element.ToString(); if (set.Add(item)) { identity.AddClaim(new Claim( diff --git a/test/OpenIddict.Abstractions.Tests/Primitives/OpenIddictExtensionsTests.cs b/test/OpenIddict.Abstractions.Tests/Primitives/OpenIddictExtensionsTests.cs index 11b8a721..71c50164 100644 --- a/test/OpenIddict.Abstractions.Tests/Primitives/OpenIddictExtensionsTests.cs +++ b/test/OpenIddict.Abstractions.Tests/Primitives/OpenIddictExtensionsTests.cs @@ -2127,7 +2127,7 @@ public class OpenIddictExtensionsTests var identity = new ClaimsIdentity(); // Act - identity.AddClaims("type", JsonSerializer.Deserialize(@"[""Fabrikam"",""Contoso""]"), "issuer"); + identity.AddClaims("type", JsonSerializer.Deserialize(@"[""Fabrikam"",""Contoso"",42]"), "issuer"); // Assert var claims = identity.FindAll("type").ToArray(); @@ -2137,6 +2137,9 @@ public class OpenIddictExtensionsTests Assert.Equal("Contoso", claims[1].Value); Assert.Equal(ClaimValueTypes.String, claims[1].ValueType); Assert.Equal("issuer", claims[1].Issuer); + Assert.Equal("42", claims[2].Value); + Assert.Equal(ClaimValueTypes.Integer32, claims[2].ValueType); + Assert.Equal("issuer", claims[2].Issuer); } [Fact]