Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu kılavuzda, ASP.NET Core uygulamanız için hedeflenen hedef kitlelere bir özellik göstermek için hedefleme filtresini kullanacaksınız. Hedefleme filtresi hakkında daha fazla bilgi için bkz . Özellikleri hedeflenen hedef kitlelere dağıtma.
Önkoşullar
- Etkin aboneliği olan bir Azure hesabı. Ücretsiz bir tane oluşturun.
- Mağaza oluşturma öğreticisinde gösterildiği gibi bir Uygulama Yapılandırma deposu.
- Hedefleme filtresi içeren bir özellik bayrağı. Özellik bayrağını oluşturun.
- .NET SDK 6.0 veya üzeri.
Özellik bayrağıyla web uygulaması oluşturma
Bu bölümde, kullanıcıların oturum açmasına ve daha önce oluşturduğunuz Beta özellik bayrağını kullanmasına olanak tanıyan bir web uygulaması oluşturacaksınız.
Aşağıdaki komutu kullanarak yerel veritabanında kimlik doğrulaması sağlayan bir web uygulaması oluşturun.
dotnet new webapp --auth Individual -o TestFeatureFlagsYeni oluşturulan TestFeatureFlags dizinine gidin ve aşağıdaki NuGet paketlerine başvurular ekleyin.
dotnet add package Microsoft.Azure.AppConfiguration.AspNetCore dotnet add package Microsoft.FeatureManagement.AspNetCore dotnet add package Azure.IdentityAşağıdaki komutları çalıştırarak uygulama için bir kullanıcı gizli dizisi oluşturun.
komutu, Uygulama Yapılandırması deponuzun uç noktasını depolayan adlı gizli diziyi depolamak için Gizli Dizi Yöneticisi'ni
Endpoints:AppConfiguration. Yer tutucuyu<your-App-Configuration-endpoint>Uygulama Yapılandırması deponuzun uç noktasıyla değiştirin. Uç noktayı Azure portalında Uygulama Yapılandırması mağazanızın Genel Bakış dikey penceresinde bulabilirsiniz.dotnet user-secrets init dotnet user-secrets set Endpoints:AppConfiguration "<your-App-Configuration-endpoint>"Uygulamanıza Azure Uygulaması Yapılandırması ve özellik yönetimi ekleyin.
Uygulama Yapılandırması deponuzda kimlik doğrulaması yapmak için öğesini kullanırsınız
DefaultAzureCredential. Kimlik bilgilerinizi Uygulama Yapılandırması Veri Okuyucusu rolü atamak için yönergeleri izleyin. Uygulamanızı çalıştırmadan önce iznin yayılması için yeterli süreye izin verdiğinden emin olun.Program.cs dosyasını aşağıdaki kodla güncelleştirin.
// Existing code in Program.cs // ... ... using Azure.Identity; var builder = WebApplication.CreateBuilder(args); // Retrieve the endpoint string endpoint = builder.Configuration.GetValue<string>("Endpoints:AppConfiguration") ?? throw new InvalidOperationException("The setting `Endpoints:AppConfiguration` was not found."); // Connect to Azure App Configuration and load all feature flags with no label builder.Configuration.AddAzureAppConfiguration(options => { options.Connect(new Uri(endpoint), new DefaultAzureCredential()) .UseFeatureFlags(); }); // Add Azure App Configuration middleware to the container of services builder.Services.AddAzureAppConfiguration(); // Add feature management to the container of services builder.Services.AddFeatureManagement(); // The rest of existing code in Program.cs // ... ...
Uygulama Yapılandırması ara yazılımıyla Azure Uygulaması Yapılandırması'ndan yapılandırma ve özellik bayrağı yenilemeyi etkinleştirin.
Program.cs aşağıdaki kodla güncelleştirin.
// Existing code in Program.cs // ... ... var app = builder.Build(); // Use Azure App Configuration middleware for dynamic configuration refresh app.UseAzureAppConfiguration(); // The rest of existing code in Program.cs // ... ...Sayfalar dizininin altına Beta adlı yeni boş bir Razor sayfası ekleyin. Beta.cshtml ve Beta.cshtml.cs dosyaları içerir.
@page @model TestFeatureFlags.Pages.BetaModel @{ ViewData["Title"] = "Beta Page"; } <h1>This is the beta website.</h1>Beta.cshtml.cs açın ve özniteliğini
FeatureGatesınıfınaBetaModelekleyin.using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.FeatureManagement.Mvc; namespace TestFeatureFlags.Pages { [FeatureGate("Beta")] public class BetaModel : PageModel { public void OnGet() { } } }Pages/_ViewImports.cshtml dosyasını açın ve bir
@addTagHelperyönerge kullanarak özellik yöneticisi Etiket Yardımcısı'nı kaydedin.@addTagHelper *, Microsoft.FeatureManagement.AspNetCoreSayfalar/Paylaşılan dizininde _Layout.cshtml dosyasını açın. Aşağıdaki vurgulanan satırlarda gösterildiği gibi Giriş ve
<feature>gezinti çubuğu öğelerinin arasına yeni bir etiket ekleyin.<nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3"> <div class="container"> <a class="navbar-brand" asp-area="" asp-page="/Index">TestAppConfigNet3</a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target=".navbar-collapse" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="navbar-collapse collapse d-sm-inline-flex flex-sm-row-reverse"> <ul class="navbar-nav flex-grow-1"> <li class="nav-item"> <a class="nav-link text-dark" asp-area="" asp-page="/Index">Home</a> </li> <feature name="Beta"> <li class="nav-item"> <a class="nav-link text-dark" asp-area="" asp-page="/Beta">Beta</a> </li> </feature> <li class="nav-item"> <a class="nav-link text-dark" asp-area="" asp-page="/Privacy">Privacy</a> </li> </ul> </div> </div> </nav>
Web uygulaması için hedeflemeyi etkinleştirme
Hedefleme ile özellik değerlendirmesi için bir hedefleme bağlamı gereklidir. Bunu AÇıKÇA API'ye featureManager.IsEnabledAsync parametre olarak sağlayabilirsiniz. ASP.NET Core'da hedefleme bağlamı, ITargetingContextAccessor arabirimi uygulanarak hizmet koleksiyonu aracılığıyla ortam bağlamı olarak da sağlanabilir.
Hedefleme Bağlam Erişimcisi
Hedefleme bağlamını sağlamak için uygulama türünüzü ITargetingContextAccessor yöntemine WithTargeting<T> geçirin. Hiçbir tür sağlanmamışsa, aşağıdaki kod parçacığında gösterildiği gibi varsayılan bir uygulama kullanılır. Varsayılan hedefleme bağlamı erişimcisi için HttpContext.User.Identity.Nametürü ve UserIdHttpContext.User.Claims türü olarak Role kullanılırGroups. Özelleştirme gerekiyorsa kendi uygulamanızı uygulamak için DefaultHttpTargetingContextAccessor'a başvurabilirsiniz. uygulamasını uygulama ITargetingContextAccessorhakkında daha fazla bilgi edinmek için hedefleme için özellik başvurusuna bakın.
// Existing code in Program.cs
// ... ...
// Add feature management to the container of services
builder.Services.AddFeatureManagement()
.WithTargeting();
// The rest of existing code in Program.cs
// ... ...
Not
Blazor uygulamaları için özellik yönetimini kapsamlı hizmetler olarak etkinleştirme yönergelerine bakın.
Filtrelemeyi hedefleme işlemi
Uygulamayı derleyin ve çalıştırın. Varsayılan yüzde seçeneği 0 olarak ayarlandığından, başlangıçta Beta öğesi araç çubuğunda görünmez.
Yeni bir kullanıcı hesabı oluşturmak için sağ üst köşedeki Kaydet bağlantısını seçin. e-posta adresini
test@contoso.comkullanın. Kayıt Onayı ekranında Hesabınızı onaylamak için buraya tıklayın'ı seçin.Hesabı kaydederken ayarladığınız parolayı kullanarak olarak
test@contoso.comoturum açın.öğesi artık araç çubuğunda görünür.
Şimdi hesabı kaydederken ayarladığınız parolayı kullanarak olarak
testuser@contoso.comoturum açın. Beta öğesi, dışlanan bir kullanıcı olarak belirtildiğindentestuser@contoso.comaraç çubuğunda görünmez.
Sonraki adımlar
Özellik filtreleri hakkında daha fazla bilgi edinmek için aşağıdaki belgelere geçin.
.NET özellik yönetimi kitaplığının tam özellik çalıştırması için aşağıdaki belgeye geçin.