Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Voor de meeste databaseproviders is een verbindingsreeks vereist om verbinding te maken met de database. De verbindingsreeks:
- Kan gevoelige informatie bevatten die moet worden beveiligd.
- Mogelijk moet de app veranderen wanneer de app wordt verplaatst naar verschillende omgevingen, zoals ontwikkeling, testen en productie.
Zie voor meer informatie Beveiligde verificatiestromen
ASP.NET Core
De ASP.NET Core-configuratie kan verbindingsreeksen opslaan bij verschillende providers:
- In het
appsettings.Development.json- of hetappsettings.json-bestand. - In een omgevingsvariabele
- Azure Key Vault gebruiken
- Het hulpprogramma Secret Manager gebruiken
Warning
Geheimen mogen nooit worden toegevoegd aan configuratiebestanden.
Het hulpprogramma Secret Manager kan bijvoorbeeld het databasewachtwoord opslaan. Bij het opzetten en gebruiken van Secret Manager bestaat een verbindingsreeks uit Name=<database-alias>.
Zie de sectie Configuratie van de ASP.NET Core-documentatie voor meer informatie.
dotnet user-secrets init
dotnet user-secrets set ConnectionStrings:YourDatabaseAlias "Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=YourDatabase"
Gebruik vervolgens in de scaffolding een verbindingsreeks die bestaat uit Name=<database-alias>.
dotnet ef dbcontext scaffold Name=ConnectionStrings:YourDatabaseAlias Microsoft.EntityFrameworkCore.SqlServer
Warning
In dit artikel wordt een lokale database gebruikt waarvoor de gebruiker niet hoeft te worden geverifieerd. Productie-apps moeten gebruikmaken van de veiligste verificatiestroom die beschikbaar is. Zie Beveiligde verificatiestromenvoor meer informatie over verificatie voor geïmplementeerde test- en productie-apps.
In het volgende voorbeeld ziet u de verbindingsreeks die is opgeslagen in appsettings.json.
{
"ConnectionStrings": {
"BloggingDatabase": "Server=(localdb)\\mssqllocaldb;Database=EFGetStarted.ConsoleApp.NewDb;Trusted_Connection=True;"
},
}
De context wordt doorgaans geconfigureerd in Program.cs waarbij de verbindingsreeks uit de configuratie wordt gelezen. Houd er rekening mee dat de methode GetConnectionString zoekt naar een configuratiewaarde waarvan de sleutel is ConnectionStrings:<connection string name>.
GetConnectionString vereist de naamruimte Microsoft.Extensions.Configuration .
var conString = builder.Configuration.GetConnectionString("BloggingContext") ??
throw new InvalidOperationException("Connection string 'BloggingContext'" +
" not found.");
builder.Services.AddDbContext<BloggingContext>(options =>
options.UseSqlServer(conString));
WinForms & WPF-toepassingen
WinForms-, WPF- en ASP.NET 4-toepassingen hebben een geprobeerd en getest verbindingsreekspatroon. De verbindingsreeks moet worden toegevoegd aan het bestand van App.config uw toepassing of Web.config wanneer u ASP.NET gebruikt. Verbindingsreeks met gevoelige informatie, zoals gebruikersnaam en wachtwoord, moet de inhoud van het configuratiebestand beveiligen met behulp van beveiligde configuratie.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<add name="BloggingDatabase"
connectionString="Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" />
</connectionStrings>
</configuration>
Tip
De providerName instelling is niet vereist voor EF Core-verbindingsreeksen die zijn opgeslagen in App.config omdat de databaseprovider is geconfigureerd via code.
Vervolgens kunt u de verbindingsreeks lezen met behulp van de ConfigurationManager API in uw context's OnConfiguring methode. Mogelijk moet u een verwijzing toevoegen naar de System.Configuration frameworkassembly om deze API te kunnen gebruiken.
public class BloggingContext : DbContext
{
public DbSet<Blog> Blogs { get; set; }
public DbSet<Post> Posts { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(ConfigurationManager.ConnectionStrings["BloggingDatabase"].ConnectionString);
}
}
Universal Windows Platform (UWP)
Verbindingsreeksen in een UWP-toepassing zijn doorgaans een SQLite-verbinding waarmee alleen een lokale bestandsnaam wordt opgegeven. Ze bevatten doorgaans geen gevoelige informatie en hoeven niet te worden gewijzigd wanneer een toepassing wordt geïmplementeerd. Als zodanig zijn deze verbindingsreeksen meestal prima om in code te blijven, zoals hieronder wordt weergegeven. Als u ze uit de code wilt verplaatsen, ondersteunt UWP het concept van instellingen, raadpleegt u de sectie App-instellingen van de UWP-documentatie voor meer informatie.
public class BloggingContext : DbContext
{
public DbSet<Blog> Blogs { get; set; }
public DbSet<Post> Posts { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite("Data Source=blogging.db");
}
}