Aracılığıyla paylaş


Bağlantı Dizeleri

Çoğu veritabanı sağlayıcısı veritabanına bağlanmak için bir bağlantı dizesi gerektirir. bağlantı dizesi:

  • Korunması gereken hassas bilgiler içerebilir.
  • Uygulamanın geliştirme, test ve üretim gibi farklı ortamlara geçtiğinde değişmesi gerekebilir.

Daha fazla bilgi için bkz . Güvenli kimlik doğrulama akışları

ASP.NET Core

ASP.NET Core yapılandırması çeşitli sağlayıcılarla bağlantı dizesi depolayabilir:

Uyarı

Gizli diziler yapılandırma dosyalarına hiçbir zaman eklenmemelidir.

Örneğin, Gizli Dizi Yöneticisi aracı veritabanı parolasını depolayabilir. gizli dizi yöneticisini oluştururken ve kullanırken, bir bağlantı dizesi oluşurName=<database-alias>.

Daha fazla bilgi için ASP.NET Core belgelerinin Yapılandırma bölümüne bakın.

dotnet user-secrets init
dotnet user-secrets set ConnectionStrings:YourDatabaseAlias "Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=YourDatabase"

Ardından, iskelede, içeren Name=<database-alias>bir bağlantı dizesi kullanın.

dotnet ef dbcontext scaffold Name=ConnectionStrings:YourDatabaseAlias Microsoft.EntityFrameworkCore.SqlServer

Uyarı

Bu makalede, kullanıcının kimliğinin doğrulanması gerekmeyen bir yerel veritabanı kullanılır. Üretim uygulamaları kullanılabilir en güvenli kimlik doğrulama akışını kullanmalıdır. Dağıtılan test ve üretim uygulamaları için kimlik doğrulaması hakkında daha fazla bilgi için bkz . Güvenli kimlik doğrulama akışları.

Aşağıdaki örnekte, içinde depolanan bağlantı dizesi gösterilmektedirappsettings.json.

{
  "ConnectionStrings": {
    "BloggingDatabase": "Server=(localdb)\\mssqllocaldb;Database=EFGetStarted.ConsoleApp.NewDb;Trusted_Connection=True;"
  },
}

Bağlam genellikle yapılandırmadan okunan bağlantı dizesi ile yapılandırılırProgram.cs. GetConnectionString yöntemi anahtarı ConnectionStrings:<connection string name>olan bir yapılandırma değeri arar. GetConnectionStringMicrosoft.Extensions.Configuration ad alanını gerektirir.

var conString = builder.Configuration.GetConnectionString("BloggingContext") ??
     throw new InvalidOperationException("Connection string 'BloggingContext'" +
    " not found.");
builder.Services.AddDbContext<BloggingContext>(options =>
    options.UseSqlServer(conString));

WinForms & WPF Uygulamaları

WinForms, WPF ve ASP.NET 4 uygulamalarının denenmiş ve test edilmiş bir bağlantı dizesi deseni vardır. bağlantı dizesi uygulamanızın App.config dosyasına veya Web.config ASP.NET kullanılırken eklenmelidir. Kullanıcı adı ve parola gibi hassas bilgileri içeren bağlantı dizesi, Korumalı Yapılandırma'yı kullanarak yapılandırma dosyasının içeriğini korumalı olmalıdır.

<?xml version="1.0" encoding="utf-8"?>
<configuration>

  <connectionStrings>
    <add name="BloggingDatabase"
         connectionString="Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" />
  </connectionStrings>
</configuration>

İpucu

providerName Veritabanı sağlayıcısı kod aracılığıyla yapılandırıldığından, ayar App.config'de depolanan EF Core bağlantı dizesi gerekli değildir.

Ardından bağlamınızın OnConfiguring yöntemindeki API'yi kullanarak ConfigurationManager bağlantı dizesi okuyabilirsiniz. Bu API'yi kullanabilmek için System.Configuration çerçeve derlemesine bir başvuru eklemeniz gerekebilir.

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);
    }
}

Evrensel Windows Platformu (UWP)

UWP uygulamasındaki bağlantı dizeleri genellikle yalnızca yerel bir dosya adı belirten bir SQLite bağlantısıdır. Bunlar genellikle hassas bilgiler içermez ve uygulama dağıtılırken değiştirilmesi gerekmez. Bu nedenle, bu bağlantı dizesi genellikle aşağıda gösterildiği gibi kodda bırakılabilir. Bunları kod dışına taşımak istiyorsanız UWP, ayarlar kavramını destekler. Ayrıntılar için UWP belgelerinin Uygulama Ayarları bölümüne bakın.

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");
    }
}