Каков наилучший способ хранения непубличных данных конфигурации в приложении .NET 4.0 - PullRequest
6 голосов
/ 08 марта 2011

мое приложение использует стандартный app.config для хранения общедоступных данных конфигурации. Тем не менее, есть еще некоторые другие данные, которые не являются общедоступными, но они все равно должны быть доступны постоянно, постоянно, изменяемы как из приложения, так и вручную в случае некоторых проблем.

Например, представьте, что приложение хранит некоторую информацию о лицензировании в файле, который не должен быть общедоступным. Однако администратор должен иметь возможность редактировать этот файл с помощью блокнота или чего-либо подобного (без каких-либо специальных редакторов), поэтому криптография вышла из игры.

Вы бы использовали изолированное хранилище? У вас есть другие предложения? Поскольку приложение не использует какую-либо базу данных, пожалуйста, не рассматривайте возможность хранения с БД в качестве опции.

Таким образом, вопрос заключается в том, как сохранить данные приложения, чтобы их было не так легко изменить вручную, как с app.config, но все же легко редактировать для опытного пользователя.

Ответы [ 2 ]

1 голос
/ 08 марта 2011

А как насчет включаемого файла?

Как атрибут файла в элементе appSettings или в свойстве SectionInformation.ConfigSource ?

<configuration>
    <appSettings file="machine-specific.config">
        <add key="Application Name" value="MyApplication" />
    </appSettings>
</configuration>

Включенный файл может быть защищен от публичного доступа обычными правами доступа к файловой системе.

Я бы определенно НЕ использовал изолированное хранилище для этого. Шифрование было бы идеальным, но так как это неприемлемо для вас ...

Использование переменных окружения тоже будет работать, я думаю ... Но я бы, наверное, не использовал это сам.

0 голосов
/ 08 марта 2011

У меня были очень хорошие результаты Использование настроек в C # .

Вы можете легко управлять настройками приложения и пользователя, которые будут автоматически сохраняться в изолированном хранилище классом, который генерирует Visual Studio. Они поддерживают практически любой тип, который сериализуем в XML, но при этом строго типизируется.

...