2013-08-04 2 views
16

Я работаю над веб-приложением asp.net mvc, которое выполняет некоторые вызовы API для других веб-приложений. но в настоящее время я храню имя пользователя API, пароль API и URL-адрес API внутри моего кода. Как следует: -Лучший способ сохранить настройки конфигурации в моем приложении asp.net mvc

using (var client = new WebClient()) 
       { 
        // client.Headers[HttpRequestHeader.Accept] = "AddAsset"; 
        var query = HttpUtility.ParseQueryString(string.Empty); 
        foreach (string key in formValues) 
        { 
         query[key] = this.Request.Form[key]; 
        } 

        query["username"] = "testuser"; 
        query["password"] = "……"; 
        query["assetType"] = "Rack"; 
        query["operation"] = "AddAsset"; 
var url = new UriBuilder("http://win-spdev:8400/servlets/AssetServlet"); 
        url.Query = query.ToString(); 
        try 
        { 

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

+2

Вы можете хранить их в файле web.config. Вы также можете зашифровать те параметры, которые требуют безопасности. – Marko

ответ

33

Чтобы сохранить эти параметры, вы должны использовать файл Web.Config (Configuration API). Таким образом, вы сможете обновлять настройки без необходимости перекомпилировать все свое приложение каждый раз. Это самый стандартный способ хранения настроек в приложении Web (MVC или WebForms) и дает вам возможность прозрачно использовать encrypt sensitive settings в вашем приложении.

Доступ к сохраненным настройкам возможен с помощью класса WebConfigurationManager. Here вы можете найти примеры того, как его использовать.

Пример кода:

Web.config AppSettings:

<appSettings> 
    <add key="ApiUserName" value="MySampleUsername" /> 
</appSettings> 

C# Код:

string userName = System.Web.Configuration.WebConfigurationManager.AppSettings["ApiUserName"]; 
+1

, поэтому мне нужно вручную добавить их в файл web.config ?. но как я могу их восстановить, и как я могу зашифровать, а затем дешифровать конфиденциальные данные? –

+2

Вы можете их восстановить, используя: ConfigurationManager.AppSettings ["Username"] например – Marko

+0

@johnG Я обновил свой ответ с некоторыми ссылками, которые будут вам полезны. – Meryovi

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