2013-08-04 9 views
16

Sto lavorando ad un'applicazione web mvc asp.net che esegue alcune chiamate API ad altre applicazioni web. ma attualmente sto memorizzando il nome utente API, la password API e l'URL API all'interno del mio codice. Come segue: -Modo migliore per memorizzare le impostazioni di configurazione all'interno della mia applicazione 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 
        { 

Ma la memorizzazione di queste impostazioni all'interno del mio codice non sarà flessibile nel caso in cui ho bisogno di cambiare le impostazioni delle chiamate API, e non è sicuro. Quindi qual è il modo migliore per memorizzare queste impostazioni. Stavo pensando di creare due tabelle di database una per memorizzare l'URL (e potrebbero esserci più URL sin dal futuro). E un'altra tabella per memorizzare nome utente e password. Così sta creando le tabelle del database il modo giusto per archiviare queste impostazioni.

+2

loro è possibile memorizzare nel file web.config. È anche possibile crittografare quelle impostazioni che richiedono sicurezza. – Marko

risposta

33

È necessario utilizzare il file Web.Config (Configuration API) per memorizzare queste impostazioni. In questo modo sarai in grado di aggiornare le impostazioni senza dover ricompilare l'intera applicazione ogni volta. Questo è il modo più standard per archiviare le impostazioni in un'applicazione Web (MVC o WebForms) e offre la possibilità di eseguire lo encrypt sensitive settings in modo trasparente per l'applicazione.

È possibile accedere alle impostazioni memorizzate utilizzando la classe WebConfigurationManager. Here puoi trovare alcuni esempi su come usarlo.

Esempio di codice:

appsettings Web.config:

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

C# Codice:

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

quindi devo aggiungerli manualmente al mio file web.config ?. ma come posso recuperarli e come posso crittografare quindi decifrare i dati sensibili? –

+2

È possibile recuperarli utilizzando: ConfigurationManager.AppSettings ["Nome utente"] ad esempio – Marko

+0

@johnG Ho aggiornato la mia risposta con alcuni riferimenti che saranno utili per voi. – Meryovi

Problemi correlati