Я разрабатываю веб-приложение с маркером-носителем Asp.Net 5 MVC, Owin и Oauth2 как тип auth.
Мне нужно сохранить список строк "CODEFOO,CODBAR,CODEX,.."
внутри System.Security.Claims.Claim с пользовательским типом претензии.
Когда пользователь запрашивает токен, этот список "кодов пользователей" получается из внутреннего блока и устанавливается внутри идентификатора с использованием определенного типа пользовательских требований.
Когда пользователь отправляет токен назад, перемещаясь по определенному действию MVC, приложение должно проверить, содержит ли список кодов пользователя внутри претензии, определенный код.
List<string> userCodes = rep.GetUserCodeFromBackEnd();
string userCodesClaimType = "http://foo.it/claim/usercodesclaimtype";
Сейчас я сериализую список строк в JSON.
var claim = new Claim(userCodesCaimType, JsonConvert.SerializeObject(userCodes));
и верните его, дерициализируя его примерно так:
var userCodesClaim = identity.Claims.FirstOrDefault<Claim>(c=>c.Type == userCodesClaimType) ;
var userCodesClaimValue = JsonConvert.DeserializeObject<List<string>>(userCodesClaim.Value);
Теперь вопрос:
есть ли лучший способ сохранить список значений внутри претензии?
Требование имеет свойство ValueType, в документации которого говорится:
Свойство ValueType содержит строку, которая идентифицирует тип информация о стоимости. Это свойство можно использовать для понимания формат значения и предоставить информацию о том, как сериализовать и десериализовать значение. Если ваше решение требует сложной ценности типов, рекомендуется использовать стандартные типы схем XML в ValueType, чтобы указать, как должно выглядеть свойство Value сериализован и десериализован из строки.
К несчастью, я не нашел никакого примера, который документирует использование этого свойства.
Является ли сериализация Json в порядке или я должен использовать подход ValueType?