2015-04-28 3 views
2

У меня есть приложение MVC и API, мне нужно передать пользовательский объект учетных данных из приложения MVC в API для каждого запроса. Я хотел бы зашифровать объект Credentials и отправить его в заголовок запроса API.Шифрование и JSON Сериализация объекта

Как я могу это сделать?

Я нашел множество статей о том, как зашифровать строку, но никто не шифрует объект в формате, отличном от XML.

+1

Вы задумывались над использованием защищенного сокета (https и т. Д.), Который зашифрует все для вас? Если память мне подходит, заголовок также шифруется при таких вызовах. –

+0

Вы можете попытаться использовать 'NewtonSoft.Json' для сериализации вашего объекта в JSON, а затем отправить любой API, который вы хотите, и Deserialize в коде API. –

+0

@ Ответ MartinNoreke был бы лучшим, если API поддерживает HTTPS Если вы не хотите отправлять по HTTPS, и если у вас есть контроль над работой API, работа с парой открытого/закрытого ключа должна сделать трюк (сериализуйте вас объект для JSON, затем зашифруйте строку с помощью открытого ключа, отправьте в ваш API, дешифруйте с помощью закрытого ключа, десериализуйте) – Sidewinder94

ответ

0
  1. Сделайте свой мндентификационный объект Serializable.
  2. Сериализуйте свой объект в строку, как описано here.
  3. Шифровать строку.

Если вы настаиваете на использовании сериализации JSON, вы можете использовать примеры this или this.

0

Ключ здесь - просто преобразовать объект в строку. Как вы сказали, вы видели примеры этого (шифрование строк). Используйте метод json.Net DeserializeObject для создания строки, зашифруйте эту строку, а затем просто используйте метод add здесь; https://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.headers%28v=vs.110%29.aspx, чтобы добавить его в коллекцию заголовков.

На заднем конце вы просто расшифровываете, десериализуете и двигаетесь вперед.

Обратите внимание, что как указано в комментариях, используя что-то вроде HTTPS, является предпочтительным. Зачем шифровать себя, а затем отправлять HTTP, когда вы можете использовать протокол, который делает это для вас?

1

Ваши требования не совсем понятны, но похоже, что они могут быть удовлетворены JSON Web Tokens. Существует множество библиотек для разных платформ, которые будут обрабатывать необходимую криптографию для вас. С JWT основное внимание уделяется аутентификации и целостности токена, а не секретности.

Если вы хотите реализовать свой собственный метод, следуйте инструкциям по шифрованию символьной строки, поскольку JSON - это символьная строка.

Смежные вопросы