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.
Ebben az útmutatóban a célzási szűrővel fog létrehozni egy funkciót a ASP.NET Core-alkalmazás célközönségei számára. A célzási szűrővel kapcsolatos további információkért lásd : Szolgáltatások bevezetése a célközönségek számára.
Előfeltételek
- Egy Azure-fiók, aktív előfizetéssel. Hozzon létre egyet ingyen.
- Egy alkalmazáskonfigurációs áruház, ahogyan az egy áruház létrehozására vonatkozó oktatóanyagban is látható.
- A célzási szűrővel rendelkező funkciójelző. Hozza létre a funkciójelzőt.
- .NET SDK 6.0 vagy újabb.
Webalkalmazás létrehozása funkciójelölővel
Ebben a szakaszban egy webalkalmazást hoz létre, amely lehetővé teszi a felhasználók számára, hogy bejelentkezhessenek, és a korábban létrehozott bétafunkció-jelzőt használják.
Hozzon létre egy webalkalmazást, amely a következő paranccsal hitelesít egy helyi adatbázison.
dotnet new webapp --auth Individual -o TestFeatureFlagsLépjen az újonnan létrehozott TestFeatureFlags könyvtárra, és adjon hozzá hivatkozásokat a következő NuGet-csomagokhoz.
dotnet add package Microsoft.Azure.AppConfiguration.AspNetCore dotnet add package Microsoft.FeatureManagement.AspNetCore dotnet add package Azure.IdentityHozzon létre egy felhasználói titkos kulcsot az alkalmazáshoz az alábbi parancsok futtatásával.
A parancs a Secret Managerrel tárolja az alkalmazáskonfigurációs tároló végpontját tároló titkos
Endpoints:AppConfigurationkulcsot. Cserélje le a<your-App-Configuration-endpoint>helyőrzőt az Alkalmazáskonfigurációs áruház végpontjára. A végpontot az Alkalmazáskonfigurációs áruház Áttekintés paneljén találja az Azure Portalon.dotnet user-secrets init dotnet user-secrets set Endpoints:AppConfiguration "<your-App-Configuration-endpoint>"Adja hozzá Azure-alkalmazás konfigurációt és szolgáltatáskezelést az alkalmazáshoz.
Ezzel hitelesítheti magát
DefaultAzureCredentialaz Alkalmazáskonfigurációs áruházban. Kövesse az utasításokat a hitelesítő adatok alkalmazáskonfigurációs adatolvasói szerepkör hozzárendeléséhez. Győződjön meg arról, hogy elegendő időt hagy az engedély propagálására az alkalmazás futtatása előtt.Frissítse a Program.cs fájlt a következő kóddal.
// 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 // ... ...
Engedélyezze a konfiguráció és a funkciójelző frissítését Azure-alkalmazás Konfigurációból az Alkalmazáskonfiguráció köztes szoftverrel.
Frissítse Program.cs a következő kóddal.
// 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 // ... ...Adjon hozzá egy új, Béta nevű üres Razor-lapot a Pages könyvtárban. Két fájlt tartalmaz Beta.cshtml és Beta.cshtml.cs.
@page @model TestFeatureFlags.Pages.BetaModel @{ ViewData["Title"] = "Beta Page"; } <h1>This is the beta website.</h1>Nyissa meg Beta.cshtml.cs, és adja hozzá az
FeatureGateattribútumot azBetaModelosztályhoz.using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.FeatureManagement.Mvc; namespace TestFeatureFlags.Pages { [FeatureGate("Beta")] public class BetaModel : PageModel { public void OnGet() { } } }Nyissa meg a Pages/_ViewImports.cshtml fájlt, és regisztrálja a funkciókezelő címkekezelőjét egy
@addTagHelperirányelv használatával.@addTagHelper *, Microsoft.FeatureManagement.AspNetCoreNyissa meg a _Layout.cshtml fájlt a Pages/Shared könyvtárban. Szúrjon be egy új
<feature>címkét a Kezdőlap és az Adatvédelem navigációs sáv elemei közé az alábbi kiemelt sorokban látható módon.<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>
Célzás engedélyezése a webalkalmazáshoz
Célzási környezetre van szükség a célzással végzett funkcióértékeléshez. Paraméterként kifejezetten megadhatja az featureManager.IsEnabledAsync API-nak. A ASP.NET Core-ban a célkörnyezet a szolgáltatásgyűjteményen keresztül környezeti környezetként is biztosítható az ITargetingContextAccessor felület implementálásával.
Célzás Kontextus Hozzáférő
A célkörnyezet megadásához adja át a metódus implementálási ITargetingContextAccessorWithTargeting<T> típusát. Ha nincs megadva típus, a rendszer egy alapértelmezett implementációt használ, ahogyan az a következő kódrészletben is látható. Az alapértelmezett célkörnyezeti HttpContext.User.Identity.Name kiegészítő típusként és UserId típusként HttpContext.User.ClaimsRoleGroupsis használható. A DefaultHttpTargetingContextAccessor parancsra hivatkozva implementálhatja a sajátját, ha testreszabásra van szükség. A megvalósítással ITargetingContextAccessorkapcsolatos további információkért tekintse meg a célzás funkcióreferenciáját.
// 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
// ... ...
Feljegyzés
A Blazor-alkalmazások esetében tekintse meg a funkciókezelés hatókörön belüli szolgáltatásokként való engedélyezésére vonatkozó utasításokat .
Célzási szűrő működés közben
Hozza létre és futtassa az alkalmazást. Kezdetben a bétaelem nem jelenik meg az eszköztáron, mert az Alapértelmezett százalék beállítás értéke 0.
Új felhasználói fiók létrehozásához kattintson a jobb felső sarokban található Regisztráció hivatkozásra. Használja a következő e-mail-címét
test@contoso.com: . A Regisztráció megerősítése képernyőn kattintson ide a fiók megerősítéséhez.Jelentkezzen be a
test@contoso.comfiók regisztrálásakor beállított jelszóval.A bétaelem most megjelenik az eszköztáron, mert
test@contoso.comcélfelhasználóként van megadva.
Most jelentkezzen be a
testuser@contoso.comfiók regisztrálásakor beállított jelszóval. A bétaelem nem jelenik meg az eszköztáron, merttestuser@contoso.comkizárt felhasználóként van megadva.
Következő lépések
A funkciószűrőkről a következő dokumentumokban olvashat bővebben.
A .NET szolgáltatásfelügyeleti kódtár teljes funkciólefutásához folytassa a következő dokumentumot.