in src/Microsoft.Azure.SignalR.Common/Auth/TokenUtilities.cs [55:103]
internal static object GetClaimValueUsingValueType(Claim claim)
{
if (claim.ValueType == ClaimValueTypes.String)
{
return claim.Value;
}
if (claim.ValueType == ClaimValueTypes.Boolean && bool.TryParse(claim.Value, out var boolValue))
{
return boolValue;
}
if (claim.ValueType == ClaimValueTypes.Double && double.TryParse(claim.Value, NumberStyles.Any, CultureInfo.InvariantCulture, out var doubleValue))
{
return doubleValue;
}
if ((claim.ValueType == ClaimValueTypes.Integer || claim.ValueType == ClaimValueTypes.Integer32) && int.TryParse(claim.Value, NumberStyles.Any, CultureInfo.InvariantCulture, out var intValue))
{
return intValue;
}
if (claim.ValueType == ClaimValueTypes.Integer64 && long.TryParse(claim.Value, out var longValue))
{
return longValue;
}
if (claim.ValueType == ClaimValueTypes.DateTime && DateTime.TryParse(claim.Value, out var dateTimeValue))
{
return dateTimeValue;
}
if (claim.ValueType == Json)
{
return JObject.Parse(claim.Value);
}
if (claim.ValueType == JsonArray)
{
return JArray.Parse(claim.Value);
}
if (claim.ValueType == JsonNull)
{
return string.Empty;
}
return claim.Value;
}