2012-11-09 15 views
6

Si utilizza Microsoft Visual Studio 2010 e Microsoft .NET Framework 4 per creare un'applicazione. L'applicazione si collega a un database Microsoft SQL Server 2008. L'applicazione utilizza un provider gestito Microsoft SQL Server ADO.NET. Quando una connessione non riesce, l'applicazione registra le informazioni di connessione, inclusa la stringa di connessione completa. Le informazioni vengono archiviate come testo normale in un file .config.Persist Security Info in .Net 4

È necessario assicurarsi che le credenziali del database siano sicure.

Quale stringa di connessione si deve aggiungere al file .config?

A. Dati origine = myServerAddress; Catalogo iniziale = myDataBase; Sicurezza integrata = SSPI; Persist Security Info = false;

B. Dati origine = myServerAddress; Catalogo iniziale = myDataBase; Sicurezza integrata = SSPI; Persist Security Info = true;

C. Dati origine = myServerAddress; Catalogo iniziale = myDataBase; ID utente = myUsername; Password = myPassword; Persist Security Info = false;

D. Dati origine = myServerAddress; Catalogo iniziale = myDataBase; ID utente = myUsername; Password = myPassword; Persist Security Info = true;

Secondo la guida, la risposta è "A". Ma a mio parere, la risposta è "C". Se stiamo utilizzando Integrated Security = SSPI, non è necessario fornire UserID e Password. Quindi, Persist Security Info = false non ha alcun effetto.

Per quanto ne so, Persist Security Info ha effetto solo se la stringa di connessione ha credenziali utente.

Potrebbe indicarmi quale è corretto? Grazie.

risposta

5

Hai ragione. Persist Security Info = false ha effetto solo se nome utente e password forniti nella stringa di connessione. Ma la domanda è "Cosa dovresti memorizzare nel file .config" e considerando che "le informazioni sono archiviate come testo normale" non devi memorizzare UID e PWD nel file di configurazione. Se si memorizza C, PWD e UID possono essere estratti dal file .config. Ma se archivi A, non ci sono credenziali da estrarre.

Non sono sicuro, perché A ha "Persist Security Info=false", ma sembra che sia una buona pratica. Vedere MSDN esempi:

+0

* ma sembra che si tratta di una buona pratica * Sembra anche estremamente ridondante, dal momento che il valore predefinito è 'false'. –