Megosztás a következőn keresztül:


Az ASP.NET Core Blazor WebAssembly biztonságossá tétele ASP.NET Core Identity segítségével

Note

Ez nem a cikk legújabb verziója. Az aktuális kiadásról a cikk .NET 10-es verziójában olvashat.

ASP.NET Core Blazor WebAssembly segítségével az önálló Identity-alkalmazások a cikk útmutatásait követve biztosíthatók.

A regisztráció, a bejelentkezés és a kijelentkezés végpontjai

Ahelyett, hogy az ASP.NET Core Identity által biztosított alapértelmezett felhasználói felületet használná, amely a Blazor Pagesen alapuló Razor alkalmazásokhoz készült, hívja meg a MapIdentityApi-at egy háttér API-ban, hogy JSON API-végpontokat adjon hozzá a felhasználók regisztrációjához és bejelentkezéséhez az ASP.NET Core Identitysegítségével. Identity API-végpontok olyan speciális funkciókat is támogatnak, mint a kéttényezős hitelesítés és az e-mail-ellenőrzés.

Az ügyfélen hívja meg a /register végpontot, hogy regisztráljon egy felhasználót az e-mail-címével és jelszavával:

using var result = await _httpClient.PostAsJsonAsync(
    "register", new
    {
        email,
        password
    });

Az ügyfélen jelentkezzen be egy felhasználó cookie hitelesítés használatával a /login végponton keresztül, és állítsa be a useCookies lekérdezési sztringet true-ra.

using var result = await _httpClient.PostAsJsonAsync(
    "login?useCookies=true", new
    {
        email,
        password
    });

A háttérkiszolgáló API cookie hitelesítést hoz létre a hitelesítéskészítő AddIdentityCookies hívásával:

builder.Services
    .AddAuthentication(IdentityConstants.ApplicationScheme)
    .AddIdentityCookies();

Jogkivonat-hitelesítés

Natív és mobil helyzetekben, ahol egyes ügyfelek nem támogatják a cookie-kat, a bejelentkezési API biztosít egy paramétert a tokenek lekéréséhez.

Warning

Azt javasoljuk, hogy tokenek helyett használjon cookie-kat a böngészőalapú alkalmazásokhoz, mert a böngésző anélkül kezeli a cookie-kat, hogy azokat JavaScript-nek adnánk ki. Ha úgy dönt, hogy jogkivonatalapú biztonságot használ a webalkalmazásokban, önnek kell gondoskodnia arról, hogy a jogkivonatok biztonságban legyenek.

A rendszer kibocsát egy saját, az ASP.NET Core Identity platformhoz tartozó token-t, amely a későbbi kérések hitelesítésére használható. A jogkivonatot a Authorization fejlécben kell átadni hordozó jogkivonatként. Egy frissítő tokent is biztosítanak. Ez a jogkivonat lehetővé teszi, hogy az alkalmazás új jogkivonatot kérjen, amikor a régi lejár anélkül, hogy a felhasználót újra be kell jelentkeznie.

A tokenek nem szabványos JSON Web Token-ek (JWT-k). Az egyéni tokenek használata szándékos, mivel a beépített Identity API elsősorban egyszerű helyzetekhez készült. A token opció nem egy teljes körű identitásszolgáltató vagy jogkivonat-kiszolgáló, hanem inkább egy alternatíva a cookie lehetőséggel szemben azoknak az ügyfeleknek, akik nem tudnak sütiket használni.

Az alábbi útmutató megkezdi a tokenalapú hitelesítés implementálását a bejelentkezési API-val. Az implementáció elvégzéséhez egyéni kód szükséges. További információ: Az Identity használata a SPÁ-khoz tartozó webes API-háttérrendszer biztonságossá tételéhez.

Ahelyett, hogy a háttérkiszolgáló API cookie hitelesítést hoz létre a hitelesítéskészítő AddIdentityCookies hívásával, a kiszolgáló API beállítja a tulajdonosi jogkivonat hitelesítését a AddBearerToken bővítménymetódussal. Adja meg a séma definiálását a bearer hitelesítési tokenekhez a IdentityConstants.BearerSchemehasználatával.

A Backend/Program.csmódosítsa a hitelesítési szolgáltatásokat és a konfigurációt a következőre:

builder.Services
    .AddAuthentication()
    .AddBearerToken(IdentityConstants.BearerScheme);

Távolítsa el a BlazorWasmAuth/Identity/CookieAuthenticationStateProvider.cs lekérdezési sztring paramétert a useCookiesLoginAsyncCookieAuthenticationStateProvider metódusában:

- login?useCookies=true
+ login

Ezen a ponton egyéni kódot kell megadnia a kliens AccessTokenResponse elemzéséhez, valamint a hozzáférési és frissítési tokenek kezeléséhez. További információ: Az Identity használata a SPÁ-khoz tartozó webes API-háttérrendszer biztonságossá tételéhez.

További Identity forgatókönyvek

A Blazor dokumentációs készlete által lefedett forgatókönyvek:

Az API által biztosított további Identity forgatókönyvekről további információért lásd: Használja a Identity-t a webes API háttérrendszer védelmére SPA-khoz.

  • Kijelölt végpontok biztonságossá tétele
  • Felhasználói adatok kezelése

Bizalmas adatok és hitelesítő adatok megőrzése biztonságos hitelesítési folyamatok használatával

Warning

Ne tárolja az alkalmazás titkos kulcsait, kapcsolati sztringeket, hitelesítő adatokat, jelszavakat, személyes azonosítószámokat (PIN-eket), titkos C#/.NET-kódot vagy titkos kulcsokat/jogkivonatokat az ügyféloldali kódban, amely mindig nem biztonságos. Tesztelési/előkészítési és éles környezetekben a kiszolgálóoldali Blazor kód- és webes API-knak biztonságos hitelesítési folyamatokat kell használniuk, amelyek nem őrzik meg a hitelesítő adatokat a projektkódban vagy a konfigurációs fájlokban. A helyi fejlesztési tesztelésen kívül javasoljuk, hogy kerülje a környezeti változók bizalmas adatok tárolására való használatát, mivel a környezeti változók nem a legbiztonságosabb megközelítések. A helyi fejlesztési teszteléshez a Secret Manager eszköz ajánlott bizalmas adatok védelméhez. További információ: Bizalmas adatok és hitelesítő adatok biztonságos karbantartása.

Mintaalkalmazások

Ebben a cikkben a mintaalkalmazások referenciaként szolgálnak olyan különálló Blazor WebAssembly alkalmazásokhoz, amelyek egy háttérbeli webes API-val férnek hozzá ASP.NET Core Identity. A bemutató két alkalmazást tartalmaz:

  • Backend: Egy háttérbeli webes API-alkalmazás, amely egy felhasználói identitástárat tart fenn ASP.NET Core Identityszámára.
  • BlazorWasmAuth: Egy különálló Blazor WebAssembly előtéralkalmazás felhasználói hitelesítéssel.

A mintaalkalmazásokat az adattár gyökérmappájából a legújabb verziómappán keresztül érheti el az alábbi hivatkozással. A minták a .NET 8-at vagy újabb verziót tartalmazzák. A mintaalkalmazások futtatásának lépéseit a README mappában található BlazorWebAssemblyStandaloneWithIdentity fájlban találja.

A mintakód megtekintése vagy letöltése (hogyan tölthető le)

Háttérbeli webes API-alkalmazáscsomagok és -kód

A háttérbeli webes API-alkalmazás egy felhasználói identitástárolót tart fenn ASP.NET Core Identityszámára.

Packages

Az alkalmazás a következő NuGet-csomagokat használja:

Ha az alkalmazás egy másik EF Core adatbázis-szolgáltatót szeretne használni az in-memory (memóriabeli) szolgáltató helyett, ne hozzon létre csomaghivatkozást az alkalmazásban a Microsoft.EntityFrameworkCore.InMemory-re.

Az alkalmazás projektfájljában (.csproj) az invariáns globalizáció van beállítva.

Mintaalkalmazás-kód

Alkalmazás beállításai a backend és frontend URL-címek konfigurálása:

  • Backend alkalmazás (BackendUrl): https://localhost:7211
  • BlazorWasmAuth alkalmazás (FrontendUrl): https://localhost:7171

A Backend.http fájl használható az időjárási adatkérés teszteléséhez. Vegye figyelembe, hogy a végpont teszteléséhez a BlazorWasmAuth alkalmazásnak futnia kell, a végpont pedig a fájlba van kódolva. További információ: .http fájlok használata a Visual Studio 2022-ben.

Az alábbi beállítás és konfiguráció az alkalmazás Program fájljában található.

A cookie hitelesítéssel rendelkező felhasználói identitás AddAuthentication és AddIdentityCookiesmeghívásával adható hozzá. Az engedélyezési ellenőrzésekhez szükséges szolgáltatásokat a AddAuthorizationBuilderhívása bővíti.

Csak bemutatókhoz ajánlott, az alkalmazás a EF Core memóriabeli adatbázis-szolgáltató használja az adatbázis-környezet regisztrációhoz (AddDbContext). A memóriabeli adatbázis-szolgáltató megkönnyíti az alkalmazás újraindítását és a regisztrációs és bejelentkezési felhasználói folyamatok tesztelését. Minden futtatás egy friss adatbázissal kezdődik, de az alkalmazás tartalmazza tesztfelhasználói vetőkódot, amelyet a cikk későbbi részében ismertetünk. Ha az adatbázist SQLite-ra változtatják, a felhasználók munkamenetek között el lesznek mentve, de az adatbázist a migrációksegítségével kell létrehozni, ahogyan az EF Core első lépések oktatóanyagában†. Az éles kódhoz más relációs szolgáltatókat is használhat, például az SQL Servert.

Note

†A EF Core első lépések oktatóanyaga PowerShell-parancsokkal hajtja végre az adatbázis-migrálásokat a Visual Studio használatakor. A Visual Studióban alternatív módszer a Csatlakoztatott szolgáltatások felhasználói felületének használata:

A Megoldáskezelőbenkattints duplán a Csatlakoztatott szolgáltatásokelemre. Az Szolgáltatásfüggőségek részben, az > alatt jelölje ki a három pontot (), majd válassza az ... lehetőséget migrálás létrehozásához, vagy az Adatbázis frissítése opciót az adatbázis frissítéséhez.

Konfigurálja a Identity a EF Core adatbázis használatára, és tegye elérhetővé a Identity végpontokat a AddIdentityCore, AddEntityFrameworkStoresés AddApiEndpointshívásán keresztül.

Létrejön egy forrásközi erőforrás-megosztási (CORS) szabályzat, amely lehetővé teszi az előtér- és háttéralkalmazások kéréseit. A tartalék URL-címek akkor vannak konfigurálva a CORS-szabályzathoz, ha az alkalmazásbeállítások nem adják meg őket:

  • Backend alkalmazás (BackendUrl): https://localhost:5001
  • BlazorWasmAuth alkalmazás (FrontendUrl): https://localhost:5002

A projekt csomagokat és konfigurációt tartalmaz OpenAPI-dokumentumok létrehozásához.

A Swagger/OpenAPI szolgáltatásai és végpontjai a webes API dokumentációjához és fejlesztési teszteléséhez tartoznak. További információ az NSwag-ről: Az NSwag használatának első lépései és ASP.NET Core.

A felhasználói szerepkör-jogcímeket a rendszer egy minimális API- küldi el a /roles végponton.

Az útvonalak a Identity végpontokhoz a MapIdentityApi<AppUser>()meghívásával vannak leképezve.

A köztes szoftverfolyamatban egy kijelentkezésvégpont (/Logout) van konfigurálva a felhasználók kijelentkeztetésére.

A végpont védelméhez adja hozzá a RequireAuthorization bővítménymetódust az útvonaldefinícióhoz. Vezérlő esetén adja hozzá a [Authorize] attribútumot a vezérlőhöz vagy a művelethez.

További információért a DbContext-példányok inicializálásának és konfigurációjának alapvető mintáiról, lásd a dokumentációban a EF Core részt.

Előtérbeli önálló Blazor WebAssembly alkalmazáscsomagok és -kódok

A különálló Blazor WebAssembly előtéralkalmazás bemutatja a felhasználók hitelesítését és a privát weblapok elérésének engedélyezését.

Packages

Az alkalmazás a következő NuGet-csomagokat használja:

Mintaalkalmazás-kód

A Models mappa az alkalmazás modelljeit tartalmazza:

A IAccountManagement felület (Identity/CookieHandler.cs) biztosít fiókkezelési szolgáltatásokat.

A CookieAuthenticationStateProvider osztály (Identity/CookieAuthenticationStateProvider.cs) kezeli a cookie-alapú hitelesítés állapotát, és biztosítja a IAccountManagement felület által leírt fiókkezelési szolgáltatás implementációit. A LoginAsync metódus explicit módon engedélyezi a cookie hitelesítést a useCookiestrue lekérdezési sztring értékén keresztül. Az osztály a hitelesített felhasználók szerepkör-jogcímeinek létrehozását is kezeli.

A CookieHandler osztály (Identity/CookieHandler.cs) biztosítja, hogy cookie hitelesítő adatok minden kéréssel együtt elküldve legyenek a háttérbeli webes API-nak, amely kezeli a Identity és karbantartja a Identity adattárat.

A wwwroot/appsettings.file háttér- és előtérbeli URL-végpontokat biztosít.

A App összetevő kaszkádolt paraméterként teszi elérhetővé a hitelesítési állapotot. További információ: ASP.NET Core Blazor hitelesítési és engedélyezési.

A MainLayout összetevő és NavMenu összetevő a AuthorizeView összetevő használatával szelektíven jeleníti meg a tartalmat a felhasználó hitelesítési állapota alapján.

A következő összetevők kezelik a gyakori felhasználói hitelesítési feladatokat, IAccountManagement szolgáltatások használatával:

A PrivatePage összetevő (Components/Pages/PrivatePage.razor) hitelesítést igényel, és megjeleníti a felhasználó jogcímeit.

A szolgáltatásokat és a konfigurációt a Program fájl (Program.cs)biztosítja:

  • A cookie kezelő hatókörrel rendelkező szolgáltatásként van regisztrálva.
  • Az engedélyezési szolgáltatások regisztrálva vannak.
  • Az egyéni hitelesítési állapotszolgáltató hatóköralapú szolgáltatásként van regisztrálva.
  • A fiókkezelési felület (IAccountManagement) regisztrálva van.
  • Az alap gazdagép URL-címe egy regisztrált HTTP-ügyfélpéldányhoz van konfigurálva.
  • Az alap háttérrendszer URL-címe egy regisztrált HTTP-ügyfélpéldányhoz van konfigurálva, amely a háttér webes API-val való hitelesítéshez használatos. A HTTP-ügyfél a cookie kezelőjével gondoskodik arról, hogy cookie hitelesítő adatok minden kéréssel együtt legyenek elküldve.

Hívja meg AuthenticationStateProvider.NotifyAuthenticationStateChanged, amikor a felhasználó hitelesítési állapota megváltozik. Lásd például a LoginAsyncLogoutAsync és CookieAuthenticationStateProvider metódusait.

Warning

A AuthorizeView összetevő szelektíven jeleníti meg a felhasználói felület tartalmát attól függően, hogy a felhasználó jogosult-e rá. Az Blazor WebAssembly összetevőbe helyezett AuthorizeView-alkalmazások összes tartalma hitelesítés nélkül felderíthető, ezért a sikeres hitelesítés után bizalmas tartalmakat kell beszerezni egy háttérkiszolgáló-alapú webes API-ból. További információ:

Felhasználói vetés bemutatása tesztelés céljából

A SeedData osztály (SeedData.cs) bemutatja, hogyan hozhat létre tesztfelhasználókat fejlesztésre. A Leela nevű tesztfelhasználó a leela@contoso.come-mail-címmel jelentkezik be az alkalmazásba. A felhasználó jelszava Passw0rd!. Leela Administrator és Manager szerepkörrel rendelkezik az engedélyezéshez, amely lehetővé teszi a felhasználó számára, hogy hozzáférjen a kezelőoldalhoz /private-manager-page, de nem a szerkesztőoldalt /private-editor-page.

Warning

Soha ne engedélyezze a felhasználói kód tesztelését éles környezetben. SeedData.InitializeAsync csak a Development fájl Program környezetében hívjuk meg:

if (builder.Environment.IsDevelopment())
{
    await using var scope = app.Services.CreateAsyncScope();
    await SeedData.InitializeAsync(scope.ServiceProvider);
}

Roles

A szerepkörjogcímeket a rendszer nem küldi vissza a manage/info végpontról, hogy felhasználói jogcímeket hozzon létre a BlazorWasmAuth alkalmazás felhasználói számára. A szerepkör-jogcímek kezelése külön kéréssel történik a GetAuthenticationStateAsyncCookieAuthenticationStateProvider metódusában, miután a felhasználó hitelesítése megtörtént a Identity/CookieAuthenticationStateProvider.cs projektben.

A CookieAuthenticationStateProvideresetében egy szerepkör-kérést tesznek a /roles szerver API projekt Backend végpontjára. A válasz ReadAsStringAsync() meghívásával sztringként kerül beolvasásra. JsonSerializer.Deserialize deszerializálja a karakterláncot egy saját RoleClaim tömbbé. Végül a rendszer hozzáadja a jogcímeket a felhasználó jogcímgyűjteményéhez.

A Backend kiszolgálói API Program fájljában egy Minimal API kezeli a /roles végpontot. A RoleClaimType állítások névtelen típussá vannak kiválasztva, szerializálva és visszaküldésre kerülnek a projekthez BlazorWasmAuth.

A szerepkörök végpontja RequireAuthorizationmeghívásával igényel engedélyezést. Ha úgy dönt, hogy nem használ minimális API-kat a vezérlők helyett a biztonságos kiszolgálói API-végpontokhoz, mindenképpen állítsa be a [Authorize] attribútumot vezérlőkre vagy műveletekre.

Különböző domain-ek hosztolása (azonos webhely konfiguráció)

A mintaalkalmazások mindkét alkalmazás ugyanazon a tartományban való üzemeltetésére vannak konfigurálva. Ha a Backend alkalmazást a BlazorWasmAuth alkalmazástól eltérő tartományban üzemelteti, bontsa ki a cookie (ConfigureApplicationCookie) konfiguráló kódot a Backend alkalmazás Program fájljában. Az alapértelmezett értékek a következők:

Módosítsa az értékeket a következőre:

- options.Cookie.SameSite = SameSiteMode.Lax;
- options.Cookie.SecurePolicy = CookieSecurePolicy.SameAsRequest;
+ options.Cookie.SameSite = SameSiteMode.None;
+ options.Cookie.SecurePolicy = CookieSecurePolicy.Always;

Az azonos webhely cookie beállításairól az alábbi forrásokban talál további információt:

Antiforgery támogatás

Csak a /logout alkalmazás bejelentkezési végpontja (Backend) igényel figyelmet a helyek közötti kérelemhamisítás (CSRF)veszélyének enyhítésére.

A kijelentkezés végpontja egy üres törzset keres a CSRF-támadások megelőzése érdekében. Mivel törzset igényel, a kérést JavaScriptből kell elvégezni, ami az egyetlen módja a cookiehitelesítés elérésének. A kijelentkezési végpont nem érhető el űrlapalapú POST használatával. Ez megakadályozza, hogy egy rosszindulatú webhely kijelentkeztetse a felhasználót.

Ezenkívül a végpontot hitelesítés (RequireAuthorization) védi a névtelen hozzáférés megakadályozása érdekében.

Az BlazorWasmAuth ügyfélalkalmazásnak csak egy üres objektumot {} kell átadnia a kérés törzsébe.

A kijelentkezési végponton kívül az antivisszaélés elleni csak akkor szükséges, ha olyan űrlapadatokat küld a szervernek, amelyek application/x-www-form-urlencoded, multipart/form-datavagy text/plainformátumúak. Blazor a legtöbb esetben kezeli az űrlapokra vonatkozó CSRF-kockázatcsökkentést. További információ: ASP.NET Core Blazor hitelesítési és engedélyezési és ASP.NET Core Blazor-űrlapok áttekintése.

A application/jsonkódolt tartalommal és CORS- engedélyezett más kiszolgálói API-végpontokra (webes API) irányuló kérések nem igényelnek CSRF-védelmet. Ezért nincs szükség CSRF-védelemre az Backend alkalmazás adatfeldolgozási (/data-processing) végpontja számára. A szerepkörök (/roles) végpontjának nincs szüksége CSRF-védelemre, mert az egy GET végpont, amely semmilyen állapotot nem módosít.

Troubleshoot

Logging

Ha engedélyezni szeretné a hibakeresést vagy a nyomkövetési naplózást Blazor WebAssembly hitelesítéshez, tekintse meg ASP.NET Core Blazor naplózásicímű témakört.

Gyakori hibák

Ellenőrizze az egyes projektek konfigurációját. Ellenőrizze, hogy az URL-címek helyesek-e:

  • Backend projekt
    • appsettings.json
      • BackendUrl
      • FrontendUrl
    • Backend.http: Backend_HostAddress
  • BlazorWasmAuth projekt: wwwroot/appsettings.json
    • BackendUrl
    • FrontendUrl

Ha a konfiguráció helyesnek tűnik:

  • Alkalmazásnaplók elemzése.

  • Vizsgálja meg a BlazorWasmAuth alkalmazás és Backend alkalmazás közötti hálózati forgalmat a böngésző fejlesztői eszközeivel. A háttéralkalmazás a kérés elküldése után gyakran egy pontos hibaüzenetet vagy egy, a problémát okozó nyomokat tartalmazó üzenetet ad vissza az ügyfélnek. A fejlesztői eszközökkel kapcsolatos útmutatást a következő cikkekben találja:

  • Google Chrome (Google-dokumentáció)

  • Microsoft Edge

  • Mozilla Firefox (Mozilla-dokumentáció)

A dokumentációs csapat válaszol a cikkekben szereplő dokumentumokkal kapcsolatos visszajelzésekre és hibákra. Nyisson meg egy problémát a cikk alján található Dokumentációs probléma megnyitása hivatkozással. A csapat nem tud terméktámogatást nyújtani. Számos nyilvános támogatási fórum áll rendelkezésre az alkalmazások hibaelhárításához. A következőket javasoljuk:

Az előző fórumok nem a Microsoft tulajdonában vagy ellenőrzése alatt állnak.

A nem biztonsági, nem érzékeny és nem bizalmas, reprodukálható keretrendszeri hibajelentések esetén nyisson meg egy jelentést az ASP.NET Core termékegységnél. Ne nyisson meg egy problémát a termékegységben, amíg nem vizsgálja meg alaposan a probléma okát, és nem tudja önállóan és a közösség segítségével megoldani a problémát egy nyilvános támogatási fórumon. A termékegység nem tudja elhárítani a külső szolgáltatásokat érintő egyszerű helytelen konfiguráció vagy használati esetek miatt hibásan működő egyes alkalmazásokat. Ha egy jelentés bizalmas jellegű, vagy a kiberbűnözők által kihasználható termék biztonsági hibáját írja le, tekintse meg Biztonsági problémák és hibák jelentésével (dotnet/aspnetcore GitHub-adattár).

Cookie-k és webhelyadatok

A cookie-k és a webhelyadatok az alkalmazásfrissítések során is megmaradhatnak, és zavarhatják a tesztelést és a hibaelhárítást. Törölje az alábbiakat az alkalmazáskód, a felhasználói fiók vagy az alkalmazáskonfiguráció módosításakor:

  • Felhasználói bejelentkezési cookie-k
  • Alkalmazás cookie-k
  • Gyorsítótárazott és tárolt webhelyadatok

Az egyik módszer a megmaradt cookie-k és webhelyadatok tesztelést és hibaelhárítást zavaró hatásának megelőzésére a következő:

  • Böngésző konfigurálása
    • Használjon egy böngészőt a teszteléshez, amely konfigurálható az összes cookie és webhelyadatok törlésére minden alkalommal, amikor a böngésző bezárul.
    • Győződjön meg arról, hogy a böngésző manuálisan vagy az IDE által bezárva van az alkalmazás, a tesztfelhasználó vagy a szolgáltató konfigurációjának bármilyen módosításához.
  • Egyéni paranccsal nyisson meg egy böngészőt InPrivate vagy Inkognitó módban a Visual Studióban:
    • Nyissa meg a Böngészés párbeszédpanelt a Visual Studio Futtatás gombjából megnyitva.
    • Válassza a Hozzáadás gombot.
    • Adja meg a böngésző elérési útját a Program mezőben. A következő végrehajtható elérési utak a Windows 10 tipikus telepítési helyei. Ha a böngésző más helyen van telepítve, vagy nem Windows 10-et használ, adja meg a böngésző végrehajtható fájljának elérési útját.
      • Microsoft Edge: C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe
      • Google Chrome: C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
      • Mozilla Firefox: C:\Program Files\Mozilla Firefox\firefox.exe
    • Az Argumentumok mezőben adja meg azt a parancssori beállítást, amelyet a böngésző inPrivate vagy Inkognitó módban való megnyitáshoz használ. Egyes böngészőkben az alkalmazás URL-címe szükséges.
      • Microsoft Edge: A -inprivatehasználata.
      • Google Chrome: Használja a --incognito --new-window {URL}, ahol a {URL} helyőrző a megnyitni kívánt URL-cím (például https://localhost:5001).
      • Mozilla Firefox: Használja a -private -url {URL}, ahol a {URL} helyőrző a megnyitni kívánt URL-cím (például https://localhost:5001).
    • Adjon meg egy nevet a Felhasználóbarát név mezőben. Például Firefox Auth Testing.
    • Válassza az OK gombot.
    • Ha el szeretné kerülni, hogy az alkalmazással végzett tesztelés minden iterációja esetében ki kell választania a böngészőprofilt, állítsa be a profilt alapértelmezettként az Alapértelmezett gombbal.
    • Győződjön meg arról, hogy az IDE bezárja a böngészőt az alkalmazás, a tesztfelhasználó vagy a szolgáltató konfigurációjának bármilyen módosításához.

Alkalmazásfrissítések

A működő alkalmazások a .NET SDK fejlesztői gépen való frissítése vagy az alkalmazás csomagverzióinak módosítása után azonnal meghiúsulhatnak. Bizonyos esetekben az inkognitó csomagok megszakíthatják az alkalmazásokat a nagyobb frissítések végrehajtásakor. A legtöbb ilyen probléma az alábbi utasítások követésével javítható:

  1. Törölje a helyi rendszer NuGet-csomaggyorsítótárait a parancshéjban a dotnet nuget locals all --clear végrehajtásával.
  2. Törölje a projekt bin és obj mappáit.
  3. Állítsa vissza és építse újra a projektet.
  4. Az alkalmazás ismételt üzembe helyezése előtt törölje a kiszolgáló üzembehelyezési mappájában lévő összes fájlt.

Note

Az alkalmazás cél-keretrendszerével nem kompatibilis csomagverziók használata nem támogatott. A csomaggal kapcsolatos információkért használja a NuGet Gallery-t.

A felhasználó jogcímeinek vizsgálata

A felhasználói jogcímekkel kapcsolatos problémák elhárításához az alábbi UserClaims összetevő használható közvetlenül az alkalmazásokban, vagy szolgálhat a további testreszabás alapjául.

UserClaims.razor:

@page "/user-claims"
@using System.Security.Claims
@attribute [Authorize]

<PageTitle>User Claims</PageTitle>

<h1>User Claims</h1>

**Name**: @AuthenticatedUser?.Identity?.Name

<h2>Claims</h2>

@foreach (var claim in AuthenticatedUser?.Claims ?? Array.Empty<Claim>())
{
    <p class="claim">@(claim.Type): @claim.Value</p>
}

@code {
    [CascadingParameter]
    private Task<AuthenticationState>? AuthenticationState { get; set; }

    public ClaimsPrincipal? AuthenticatedUser { get; set; }

    protected override async Task OnInitializedAsync()
    {
        if (AuthenticationState is not null)
        {
            var state = await AuthenticationState;
            AuthenticatedUser = state.User;
        }
    }
}

További erőforrások