У меня есть ряд файлов XML, которые я хочу скрыть от клиента, и хочу быть доступным только для приложения. Я читаю и пишу из них/с ними, используя XmlSerializer
. Как это может быть сделано? Я читал о встроенных ресурсах, но из того, что я видел, мне нужно читать и писать в файлы, используя какой-то поток. Мне было интересно, есть ли другой подход, который позволит мне получить к ним доступ с помощью XmlSerializer
и скрыть их от клиента.Как скрыть содержимое файлов XML
ответ
Если вы просто хотите, чтобы скрыть их (вид запутывания, чтобы предотвратить случайные изменения) вы можете рассмотреть сжать их. Например, этот пример функции # десериализации C:
static T Deserialize<T>(string path, object obj)
{
var serializer = new XmlSerializer(typeof(T));
using (var stream = new GZipStream(File.OpenRead(path),
CompressionMode.Decompress))
{
return (T)serializer.Deserialize(stream);
}
}
Ваши клиенты будут видеть двоичный файл, и они не смогут изменить/проверить его (кроме того, это просто сжатый поток, так что они не могут даже разархивируйте их). Для наглядности это эквивалентно функции сериализации:
static void Serialize<T>(string path, T obj)
{
var serializer = new XmlSerializer(typeof(T));
using (var stream = new GZipStream(File.Create(path),
CompressionMode.Compress))
{
serializer.Serialize(stream, obj);
}
}
Примечание: в исходном вопросе вы ничего о вашей среде не говорят (.NET Java?), Я предоставил код при условии, что вы программируете на C# но вы можете применить ту же технику с любым другим языком/средой, которую используете.
Update это небольшая программа испытаний, чтобы увидеть, как это работает:
public class Test
{
public string Name { get; set; }
public string Value { get; set; }
}
class Program
{
static void Main(string[] args)
{
Serialize(@"c:\test.dat", new Test { Name = "A", Value = "B" });
}
// Place here Serialization<T>() method
}
.NET, я забыл упомянуть об этом. Похоже, хороший подход, я попробую и посмотрю, как это происходит. Спасибо – user2399378
@ пользователь2399378 приветствуется. Это не то, что вы можете использовать для сохранения ваших данных лицензии (или разумной информации), но хорошо использовать для обфускации текстовых файлов, которые нельзя изменять/проверять _super-users_. –
У меня есть ситуация, когда некоторые файлы нужно сжимать, а некоторые нет. Я адаптировал метод сериализации для лечения этой ситуации, но я не уверен в десериализации, как я могу проверить, сжат ли файл или нет? – user2399378
- 1. Kettle - Добавить содержимое файлов XML
- 2. Как изменить содержимое нескольких файлов XML
- 3. Как скрыть элемент, если содержимое вложенных файлов пуст?
- 4. Как скрыть содержимое элемента html
- 5. Как скрыть файл xml?
- 6. Как добавить содержимое Xml-файлов в базу данных SQL Server
- 7. AJAX Показать содержимое/скрыть
- 8. Скрыть содержимое Загрузка Gif
- 9. Скрыть содержимое HTML-заголовка?
- 10. Скрыть содержимое внутри iframe?
- 11. Показать/скрыть Содержимое Highchart
- 12. Показать скрыть содержимое
- 13. Скрыть содержимое на UIWebView
- 14. Показать/скрыть содержимое xml, щелкнув в цикле foreach
- 15. Как слить содержимое файлов, отслеживаемых git-lfs
- 16. Как скрыть свойство PropertyGid в XML?
- 17. Как скрыть расширения файлов в PHP?
- 18. Java - Как получить содержимое XML в сети
- 19. Как выводить содержимое исходных файлов
- 20. Как получить содержимое файлов COD?
- 21. Сохранить содержимое iframe как XML
- 22. Как читать содержимое XML-тега
- 23. Как проверить содержимое XML NodeList
- 24. Как изменить содержимое Xml-файла?
- 25. Как скрыть файл конфигурации XML
- 26. Как скрыть GtkSpinButton в XML
- 27. Как сохранить содержимое в xml-файле
- 28. Извлечь содержимое из набора xml-файлов, используя php
- 29. Как скрыть и показать содержимое в wpf?
- 30. Как скрыть содержимое div безопасно в JQuery?
Когда вы говорите, «шкура» Я полагаю, что просто маркировка файл как «скрытый» не является приемлемым для вас? –
Мне нужно уметь читать его из приложения. Если он будет скрыт, я все равно могу это сделать? – user2399378
@ user2399378 Я написал ответ, я предположил, что вы говорите о среде .NET, если вы не помечаете свой вопрос более подробно, это может относиться к Java, .NET или чему-либо еще с классом XmlSerializer ... –