У меня есть следующие настройки для моей пользовательской политики B2C:
<TechnicalProfile Id="SM-AAD">
<DisplayName>Session Mananagement Provider</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.DefaultSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<PersistedClaims>
<PersistedClaim ClaimTypeReferenceId="objectId" />
<PersistedClaim ClaimTypeReferenceId="signInName" />
<PersistedClaim ClaimTypeReferenceId="email" />
<PersistedClaim ClaimTypeReferenceId="groups" />
<PersistedClaim ClaimTypeReferenceId="executed-SelfAsserted-Input" />
</PersistedClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="objectIdFromSession" DefaultValue="true"/>
</OutputClaims>
</TechnicalProfile>
Обратите внимание, что одно из постоянных утверждений имеет тип StringCollection <PersistedClaim ClaimTypeReferenceId="groups" />
.Исходные значения имеют вид:
"groups": ["guid1", "guid2", "guid3", ...]
Все утверждения сохраняются в порядке в сеансе (cookie), кроме утверждения groups .Вместо правильной сериализации / десериализации значений при следующем запросе токена мы получили следующее в JWT:
"groups": ["System.Collections.Generic.List`1[System.String]"],
Есть ли способ правильно сериализовать утверждение StringCollection тип