PublicClientApplication Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Abstrakt klass som innehåller vanliga API-metoder och egenskaper. Mer information finns i https://aka.ms/msal-net-client-applications
public sealed class PublicClientApplication : Microsoft.Identity.Client.ClientApplicationBase, Microsoft.Identity.Client.IByRefreshToken, Microsoft.Identity.Client.IPublicClientApplication
type PublicClientApplication = class
inherit ClientApplicationBase
interface IPublicClientApplication
interface IClientApplicationBase
interface IApplicationBase
interface IByRefreshToken
Public NotInheritable Class PublicClientApplication
Inherits ClientApplicationBase
Implements IByRefreshToken, IPublicClientApplication
- Arv
- Implementeringar
Exempel
Här är ett exempel på hur du använder PublicClientApplication med en autentiseringskoordinator och cachelagring.
{
string tenant = s_tids[s_currentTid];
return $"https://login.microsoftonline.com/{tenant}";
}
private static IPublicClientApplication CreatePca(bool withWamBroker = false)
{
// <PCABootstrapSample>
var pcaBuilder = PublicClientApplicationBuilder
.Create(s_clientIdForPublicApp)
.WithAuthority(GetAuthority())
.WithLogging(Log, LogLevel.Verbose, true);
if (withWamBroker)
{
IntPtr consoleWindowHandle = GetConsoleWindow();
Func<IntPtr> consoleWindowHandleProvider = () => consoleWindowHandle;
pcaBuilder.WithBroker(new BrokerOptions(BrokerOptions.OperatingSystems.Windows) { Title = "Only Windows" })
.WithParentActivityOrWindow(consoleWindowHandleProvider);
}
Console.WriteLine($"IsBrokerAvailable: {pcaBuilder.IsBrokerAvailable()}");
var pca = pcaBuilder.WithRedirectUri("http://localhost") // required for DefaultOsBrowser
.Build();
pca.UserTokenCache.SetBeforeAccess(notificationArgs =>
{
notificationArgs.TokenCache.DeserializeMsalV3(File.Exists(CacheFilePath)
? File.ReadAllBytes(CacheFilePath)
: null);
});
pca.UserTokenCache.SetAfterAccess(notificationArgs =>
Kommentarer
Till skillnad från ConfidentialClientApplicationkan offentliga klienter inte lagra konfigurationstidshemligheter och har därför ingen klienthemlighet.
Omdirigerings-URI:n som behövs för interaktiv autentisering bestäms automatiskt av biblioteket. Det behöver inte skickas uttryckligen i konstruktorn. Beroende på autentiseringsstrategin (t.ex. via webbautentiseringshanteraren, autentiseringsappen, webbläsaren osv.) används olika omdirigerings-URI:er av MSAL. Omdirigerings-URI:er måste alltid konfigureras på bladet Azure Active Directory i Azure Portal.
Egenskaper
| Name | Description |
|---|---|
| AppConfig |
Information om konfigurationen av ClientApplication i felsökningssyfte. (Ärvd från ClientApplicationBase) |
| Authority |
Hämtar URL:en för utfärdaren eller säkerhetstokentjänsten (STS) från vilken MSAL.NET hämtar säkerhetstokenS returneringsvärdet för den här egenskapen är antingen det värde som tillhandahålls av utvecklaren i konstruktorn i programmet eller på annat sätt värdet för den Microsoft.Identity.Client.ApplicationBase.DefaultAuthority statiska medlemmen (dvs |
| IsSystemWebViewAvailable |
Returnerar sant om MSAL kan använda en systemwebbläsare. |
| OperatingSystemAccount |
Ett särskilt kontovärde som anger att det aktuella operativsystemets konto ska användas för att logga in användaren. Alla operativsystem och autentiseringsflöden stöder inte det här konceptet, i vilket fall anropet AcquireTokenSilent(IEnumerable<String>, IAccount) genererar en MsalUiRequiredException. |
| UserTokenCache |
Cacheminne för användartoken. Den innehåller åtkomsttoken, ID-token och uppdateringstoken för konton. Den används och uppdateras tyst om det behövs vid anrop AcquireTokenSilent(IEnumerable<String>, IAccount) eller någon av åsidosättningarna för AcquireTokenSilent(IEnumerable<String>, IAccount).
Den uppdateras av varje AcquireTokenXXX-metod, med undantag för |
Metoder
| Name | Description |
|---|---|
| AcquireTokenByIntegratedWindowsAuth(IEnumerable<String>) |
Icke-interaktiv begäran om att hämta en säkerhetstoken för den inloggade användaren i Windows via integrerad Windows-autentisering. Se även https://aka.ms/msal-net-iwa. Kontot som används i dessa åsidosättningar hämtas från operativsystemet som det aktuella användarens huvudnamn. |
| AcquireTokenByUsernamePassword(IEnumerable<String>, String, SecureString) |
Föråldrad.
Icke-interaktiv begäran om att hämta en säkerhetstoken från utfärdaren via användarnamn/lösenordsautentisering. Se https://aka.ms/msal-net-up för mer information. |
| AcquireTokenByUsernamePassword(IEnumerable<String>, String, String) |
Föråldrad.
Icke-interaktiv begäran om att hämta en säkerhetstoken från utfärdaren via användarnamn/lösenordsautentisering. Se https://aka.ms/msal-net-up för mer information. |
| AcquireTokenInteractive(IEnumerable<String>) |
Interaktiv begäran om att hämta en token för de angivna omfången. Det interaktiva fönstret kommer att vara överordnat till det angivna fönstret. Användaren måste välja ett konto. |
| AcquireTokenSilent(IEnumerable<String>, IAccount) |
[V3 API] Försöker hämta en åtkomsttoken för från cacheminnet för |
| AcquireTokenSilent(IEnumerable<String>, String) |
[V3 API] Försöker hämta en åtkomsttoken för IAccount att matcha den Username angivna |
| AcquireTokenWithDeviceCode(IEnumerable<String>, Func<DeviceCodeResult,Task>) |
Hämtar en säkerhetstoken på en enhet utan webbläsare genom att låta användaren autentisera på en annan enhet. Detta görs i två steg:
|
| GetAccountAsync(String, CancellationToken) |
IAccount Hämta efter dess identifierare bland de konton som är tillgängliga i tokencachen. (Ärvd från ClientApplicationBase) |
| GetAccountAsync(String) |
IAccount Hämta efter dess identifierare bland de konton som är tillgängliga i tokencachen. (Ärvd från ClientApplicationBase) |
| GetAccountsAsync() |
Returnerar alla tillgängliga konton i programmets cacheminne för användartoken. (Ärvd från ClientApplicationBase) |
| GetAccountsAsync(CancellationToken) |
Returnerar alla tillgängliga konton i programmets cacheminne för användartoken. (Ärvd från ClientApplicationBase) |
| GetAccountsAsync(String, CancellationToken) |
IAccount Hämta samlingen efter dess identifierare bland de konton som är tillgängliga i tokencachen baserat på användarflödet. Detta gäller Azure AD B2C-scenarier. (Ärvd från ClientApplicationBase) |
| GetAccountsAsync(String) |
IAccount Hämta samlingen efter dess identifierare bland de konton som är tillgängliga i tokencachen baserat på användarflödet. Detta gäller Azure AD B2C-scenarier. (Ärvd från ClientApplicationBase) |
| IsBrokerAvailable() |
Returnerar |
| IsEmbeddedWebViewAvailable() |
Returnerar |
| IsProofOfPossessionSupportedByClient() |
Används för att avgöra om den för närvarande tillgängliga mäklaren kan utföra Proof-of-Possession. |
| IsUserInteractive() |
Returnerar |
| RemoveAsync(IAccount, CancellationToken) |
Tar bort alla token i cacheminnet för det angivna kontot. (Ärvd från ClientApplicationBase) |
| RemoveAsync(IAccount) |
Tar bort alla token i cacheminnet för det angivna kontot. (Ärvd från ClientApplicationBase) |
Explicita gränssnittsimplementeringar
| Name | Description |
|---|---|
| IByRefreshToken.AcquireTokenByRefreshToken(IEnumerable<String>, String) |
Hämtar en åtkomsttoken från en befintlig uppdateringstoken och lagrar den och uppdateringstoken i cacheminnet för användartoken, där den blir tillgänglig för ytterligare AcquireTokenSilent-anrop. Den här metoden kan användas vid migrering till MSAL från ADAL v2 och i olika integreringsscenarier där du har en RefreshToken tillgänglig. Se även https://aka.ms/msal-net-migration-adal2-msal2. |
Tilläggsmetoder
| Name | Description |
|---|---|
| IsEmbeddedWebViewAvailable(IPublicClientApplication) |
Returnerar sant om MSAL kan använda en inbäddad webbvy (webbläsare). |
| IsProofOfPossessionSupportedByClient(IPublicClientApplication) |
Används för att avgöra om den för närvarande tillgängliga mäklaren kan utföra Proof-of-Possession. |
| IsSystemWebViewAvailable(IPublicClientApplication) |
Returnerar sant om MSAL kan använda en systemwebbläsare. |
| IsUserInteractive(IPublicClientApplication) |
Returnerar false när programmet körs i ett huvudlöst operativsystem, till exempel när SSH-ed in i en Linux-dator. Webbläsare (webbvyer) och koordinatorer kan inte användas om det inte finns något stöd för användargränssnittet. AcquireTokenWithDeviceCode(IEnumerable<String>, Func<DeviceCodeResult,Task>) Använd i stället ellerAcquireTokenByIntegratedWindowsAuth(IEnumerable<String>) |