Где хранить пользовательские и секретные данные для тестового проекта .Net? - PullRequest
0 голосов
/ 23 сентября 2019

У меня есть NUnit тестовый проект, который тестирует шлюз для некоторого удаленного сервиса.

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

Теперь я храню эти ключи в коде.Но это неправильный способ для пользовательских и секретных данных.Я должен скрыть это от системы контроля версий и других людей.

Итак, где лучше хранить такие данные?

Мои идеи:

  • переменные окружения
  • *. Csproj.user (если это возможно?)
  • *. Resx
  • .runsettings (если это возможно?)

I 'Я хотел бы использовать *.csproj.user, но возможно ли сохранить и получить доступ к пользовательским данным в этом файле?

Ответы [ 2 ]

2 голосов
/ 23 сентября 2019

Если это не для тестирования и учетные записи не являются поддельными, вы должны стремиться никогда не хранить учетные данные пользователя и, определенно, не ключи SSH, если это не продукт безопасности OEM.

Вам было бы лучше создать в модульном тесте SetUp для созданияслучайные учетные записи и используйте их или смоделируйте результат аутентификационных вызовов.

Обычно вы сохраняете тестовые данные в файле CSV / Xslx и в каждой строке вы выполняете значения с помощью тестируемого метода.Вы также можете сделать это с базой данных.Вот пример: https://stackoverflow.com/a/6095773/495455

Для методов, которым требуется конфиденциальная информация о полномочиях доступа, вы должны тестировать изолированно с известными рабочими и нерабочими значениями, которые нельзя использовать для взлома системы.

0 голосов
/ 24 сентября 2019
public static class ApiKeys {

    private static IConfiguration Config { get; set; }
    public static string PublicKey => Config.GetValue<string>( "service-public-key" );
    public static string SecretKey => Config.GetValue<string>( "service-secret-key" );


    static ApiKeys() {
        Config = new ConfigurationBuilder()
        .AddEnvironmentVariables()
        //.AddIniFile( "api-keys.ini", true ) // in this case you must add "api-keys.ini" to .gitignore file.
        .Build();
    }


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