2011-05-05 7 views
12

Sto creando un modello per un database ed ero curioso della seguente istruzione nella procedura guidata Modello entità ADO.NET in cui si ha le opzioni di scelta Sì o No come dove memorizzare i dati sensibili -Come impostare i dati sensibili nel codice dell'applicazione quando si crea il modello ADO.NET? D alcuni tag uno

"No, escludere i dati sensibili dalla stringa di connessione io impostarlo nel mio codice di applicazione."

Non ho mai usato questa opzione e volevo solo sapere se ho fatto dove dovrei specificare i miei dati sensibili. Qualche idea?

+0

Ottima domanda! Mi piacerebbe saperlo anche questo. – Jordan

risposta

-2

È il nome utente e la password per la stringa di connessione. Se non li hai nel file di configurazione, dovrai fornire loro durante la creazione del contesto dati.

+3

Ma come si fa? –

7

impostare l'argomento stringa di connessione al costruttore del modello:

MyEntities1 db = new MyEntities1 ("metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=';Data Source=localhost;Initial Catalog=myDb;User ID=user1;Password=myPass;MultipleActiveResultSets=True';"); 
3

Crea crittografati DLL per tenere stringa di connessione

modificare il costruttore delle entità

// Separate Encrypted DLL file 
public static class secureData() 
{ 
    public static string ConString = @"Data Source=YOUR_SERVER;Initial 
    Catalog=YOUR_DB;Persist Security Info=True;User 
    ID=YOUR_USER;Password=YOUR_PASSWORD"; 
} 


public sampleDBEntities() : base("name=sampleDBEntities") 
    { 
     this.Database.Connection.ConnectionString = secureData.ConString ; 
    } 
+0

Bene, questo esce da web.config, ma la mia comprensione è che è praticamente altrettanto visibile nel codice C# offuscato, no? –

+0

Sì. Ma puoi usare le ** tecniche di crittografia ** per proteggere le tue stringhe di connessione. –

+0

@ WilliamT.Mallard In alternativa, è possibile scrivere del codice per leggere la password da qualche parte più sicura. – Dan

0

Questo è quello che ho usato in passato, anche se molti sostengono che non è sicuro memorizzare password di testo in chiaro nei file di origine. Esistono metodi per garantire ciò crittografando le stringhe di connessione;

public db_entity() 
      : base("name=db_entity") 
     { 
      this.Database.Connection.ConnectionString= "server=localhost;user id=<USERNAME>;Password=<PASSWORD.;persistsecurityinfo=True;database=<DB_NAME>";    
     } 
Problemi correlati