Как не хранить ключ API в Visual Studio / C # кода в проекте с открытым исходным кодом - PullRequest
0 голосов
/ 25 сентября 2019

Я использую Центр приложений Microsoft с приложением .NET Core 3 WPF.Я не хочу хранить ключ центра приложения непосредственно в исходном коде, поскольку мое программное обеспечение имеет открытый исходный код.Я использую Visual Studio, и я нашел способы, чтобы не хранить мой ключ API в исходном коде напрямую.Я знаю, что вы не должны хранить их там, но когда дело доходит до сборки, мне нужно, чтобы ключ API был доступен в виде строки кода, чтобы он мог передавать его вызову метода.

ЯЯ не очень беспокоюсь о том, что кто-то запускает мое приложение через дизассемблер, но я хотел бы помешать случайным людям, которые могли бы возиться больше, чем следовало бы.В Visual Studio / c # я не могу найти способ сделать что-то подобное.Например, директива #ReadFromFile (filepath) или что-то, что может прочитать содержимое файла и подставить его в документ во время компиляции.

Кто-нибудь знает способ сделать что-то подобное?Я видел много ответов о том, «как вы никогда не должны это делать», но у меня нет действительно ресурсов, чтобы делать то, что делают многие из них.У меня просто довольно простое приложение с открытым исходным кодом, использующее ключ API.

1 Ответ

3 голосов
/ 25 сентября 2019

Я думаю, что есть 3 возможных решения:

  1. Поместите ключ в файл, который ваше приложение будет читать при запуске, и исключите этот файл из системы контроля версий.

  2. a) Введите свой ключ в переменные среды.Это то, как вы бы сделали это для облачного приложения.(но так как это необходимо для настольных приложений, каждая программа на вашем ПК может их читать)

    b) Если вы работаете только с Windows, поместите его в реестр Windows.(другие программы могут использовать это тоже)

  3. Вызовите вашу Программу с ключом в качестве параметра.Вы можете создать пакетный / powershell (для windows) или bash (для linux) сценарий или создать ярлык на рабочем столе, чтобы вам не приходилось постоянно запускать приложение через терминал.

(Кроме того, вы также можете зашифровать ключ и попросить пользователя ввести пароль при запуске. Поэтому, даже если другие приложения могут прочитать ваш ключ, у них есть только зашифрованные данные.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...