Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A legtöbb adatbázis-szolgáltatónak kapcsolati sztringre van szüksége az adatbázishoz való csatlakozáshoz. A kapcsolati karakterlánc:
- Bizalmas információkat tartalmazhat, amelyeket védeni kell.
- Előfordulhat, hogy módosítani kell az alkalmazás beállításait, amikor különböző környezetekbe telepítik, például fejlesztési, tesztelési vagy éles környezetbe.
További információ: Biztonságos hitelesítési folyamatok
ASP.NET Core
A ASP.NET Core-konfiguráció képes a kapcsolati sztringek tárolására különböző szolgáltatókkal:
- A
appsettings.Development.json
vagyappsettings.json
fájlban. - Környezeti változóban
- Az Azure Key Vault használata
- A Secret Manager eszköz használata
Figyelmeztetés
A titkos kulcsokat soha nem szabad hozzáadni a konfigurációs fájlokhoz.
A Secret Manager eszköz például képes tárolni az adatbázis jelszavát. A vázstruktúra létrehozásakor és a Secret Manager használatakor a kapcsolati sztring a Name=<database-alias>
következőből áll.
További információt a ASP.NET Core dokumentációjának Konfiguráció szakaszában talál.
dotnet user-secrets init
dotnet user-secrets set ConnectionStrings:YourDatabaseAlias "Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=YourDatabase"
Ezután az állványzatban használjon egy kapcsolati sztringet, amely a Name=<database-alias>
következőből áll: .
dotnet ef dbcontext scaffold Name=ConnectionStrings:YourDatabaseAlias Microsoft.EntityFrameworkCore.SqlServer
Figyelmeztetés
Ez a cikk egy helyi adatbázist használ, amely nem igényli a felhasználó hitelesítését. A termelésben használt alkalmazásoknak az elérhető legbiztonságosabb hitelesítési folyamatot kell használniuk. Az üzembe helyezett teszt- és éles alkalmazások hitelesítéséről további információt Biztonságos hitelesítési folyamatokcímű témakörben talál.
Az alábbi példa a következő helyen tárolt kapcsolati sztringet mutatja be appsettings.json
.
{
"ConnectionStrings": {
"BloggingDatabase": "Server=(localdb)\\mssqllocaldb;Database=EFGetStarted.ConsoleApp.NewDb;Trusted_Connection=True;"
},
}
A környezetet általában úgy konfigurálják Program.cs
, hogy a kapcsolati sztringet a konfigurációból olvassa be. Vegye figyelembe, hogy a GetConnectionString metódus olyan konfigurációs értéket keres, amelynek a kulcsa.ConnectionStrings:<connection string name>
GetConnectionString
a Microsoft.Extensions.Configuration névteret igényli.
var conString = builder.Configuration.GetConnectionString("BloggingContext") ??
throw new InvalidOperationException("Connection string 'BloggingContext'" +
" not found.");
builder.Services.AddDbContext<BloggingContext>(options =>
options.UseSqlServer(conString));
WinForms & WPF-alkalmazások
A WinForms, a WPF és az ASP.NET 4 alkalmazások kipróbált és tesztelt kapcsolati sztringmintával rendelkeznek. A kapcsolati sztringet hozzá kell adni az alkalmazás fájljához App.config
, vagy Web.config
ASP.NET használatakor. A bizalmas adatokat, például felhasználónevet és jelszót tartalmazó kapcsolati sztringnek a konfigurációs fájl tartalmát Védett Konfiguráció használatával kell megvédenie.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<add name="BloggingDatabase"
connectionString="Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" />
</connectionStrings>
</configuration>
Jótanács
A providerName
beállítás nem szükséges az EF Core kapcsolati sztringeknél, amelyeket a App.config tárol, mert az adatbázis-szolgáltató kóddal van konfigurálva.
Ezután a kapcsolati sztringet a környezet OnConfiguring
metódusában, az ConfigurationManager
API használatával olvashatja el. Előfordulhat, hogy az API használatához hozzá kell adnia egy hivatkozást a System.Configuration
keretrendszer-szerelvényhez.
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);
}
}
Univerzális Windows-platform (UWP)
Az UWP-alkalmazások kapcsolati sztringjei általában egy SQLite-kapcsolat, amely csak egy helyi fájlnevet ad meg. Ezek általában nem tartalmaznak bizalmas információkat, és nem kell módosítani az alkalmazás üzembe helyezésekor. Ezért ezek a kapcsolati láncok általában nyugodtan maradhatnak a kódban, ahogy az alább látható. Ha ki szeretné őket helyezni a kódból, akkor az UWP támogatja a beállítások fogalmát, a részletekért tekintse meg az UWP dokumentációjának Alkalmazásbeállítások szakaszát .
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");
}
}