PublicClientApplication Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Abstracte klasse met algemene API-methoden en -eigenschappen. Zie voor meer informatie 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
- Overname
- Implementeringen
Voorbeelden
Hier volgt een voorbeeld van het gebruik PublicClientApplication met een verificatiebroker en caching.
{
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 =>
Opmerkingen
In tegenstelling tot ConfidentialClientApplication, openbare clients kunnen geen configuratietijdgeheimen bevatten en daardoor geen clientgeheim hebben.
De omleidings-URI die nodig is voor interactieve verificatie wordt automatisch bepaald door de bibliotheek. Het hoeft niet expliciet in de constructor te worden doorgegeven. Afhankelijk van de verificatiestrategie (bijvoorbeeld via webverificatiebeheer, verificatie-app, browser, enzovoort), worden verschillende omleidings-URI's gebruikt door MSAL. Omleidings-URI's moeten altijd worden geconfigureerd op de blade Azure Active Directory in de Azure Portal.
Eigenschappen
| Name | Description |
|---|---|
| AppConfig |
Details over de configuratie van de ClientApplication voor foutopsporingsdoeleinden. (Overgenomen van ClientApplicationBase) |
| Authority |
Hiermee haalt u de URL van de instantie of de beveiligingstokenservice (STS) op van waaruit MSAL.NET beveiligingstokens krijgt. De retourwaarde van deze eigenschap is de waarde die door de ontwikkelaar wordt verstrekt in de constructor van de toepassing, of anderszins de waarde van het Microsoft.Identity.Client.ApplicationBase.DefaultAuthority statische lid (dat wil |
| IsSystemWebViewAvailable |
Retourneert waar als MSAL een systeembrowser kan gebruiken. |
| OperatingSystemAccount |
Een speciale accountwaarde die aangeeft dat het huidige besturingssysteemaccount moet worden gebruikt om de gebruiker aan te melden. Niet alle besturingssystemen en verificatiestromen ondersteunen dit concept, in welk geval oproepen AcquireTokenSilent(IEnumerable<String>, IAccount) een MsalUiRequiredException. |
| UserTokenCache |
Cache van gebruikerstoken. Het bevat toegangstokens, id-tokens en vernieuwingstokens voor accounts. Deze wordt indien nodig op de achtergrond gebruikt en bijgewerkt wanneer u belt AcquireTokenSilent(IEnumerable<String>, IAccount) of een van de onderdrukkingen van AcquireTokenSilent(IEnumerable<String>, IAccount).
Het wordt bijgewerkt door elke AcquireTokenXXX-methode, met uitzondering waarvan |
Methoden
| Name | Description |
|---|---|
| AcquireTokenByIntegratedWindowsAuth(IEnumerable<String>) |
Niet-interactieve aanvraag voor het verkrijgen van een beveiligingstoken voor de aangemelde gebruiker in Windows, via Geïntegreerde Windows-verificatie. Zie https://aka.ms/msal-net-iwa. Het account dat in deze onderdrukkingen wordt gebruikt, wordt opgehaald uit het besturingssysteem als de huidige principal-naam van de gebruiker. |
| AcquireTokenByUsernamePassword(IEnumerable<String>, String, SecureString) |
Verouderd.
Niet-interactieve aanvraag voor het verkrijgen van een beveiligingstoken van de instantie, via verificatie via gebruikersnaam/wachtwoord. Zie https://aka.ms/msal-net-up voor meer informatie. |
| AcquireTokenByUsernamePassword(IEnumerable<String>, String, String) |
Verouderd.
Niet-interactieve aanvraag voor het verkrijgen van een beveiligingstoken van de instantie, via verificatie via gebruikersnaam/wachtwoord. Zie https://aka.ms/msal-net-up voor meer informatie. |
| AcquireTokenInteractive(IEnumerable<String>) |
Interactieve aanvraag voor het verkrijgen van een token voor de opgegeven bereiken. Het interactieve venster wordt boven het opgegeven venster weergegeven. De gebruiker moet een account selecteren. |
| AcquireTokenSilent(IEnumerable<String>, IAccount) |
[V3 API] Hiermee probeert u een toegangstoken voor het |
| AcquireTokenSilent(IEnumerable<String>, String) |
[V3 API] Probeert een toegangstoken te verkrijgen voor het IAccount feit dat het overeenkomt met de Username opgegeven |
| AcquireTokenWithDeviceCode(IEnumerable<String>, Func<DeviceCodeResult,Task>) |
Hiermee verkrijgt u een beveiligingstoken op een apparaat zonder webbrowser, door de gebruiker te laten verifiëren op een ander apparaat. Dit gebeurt in twee stappen:
|
| GetAccountAsync(String, CancellationToken) |
Haal de IAccount id op van de accounts die beschikbaar zijn in de tokencache. (Overgenomen van ClientApplicationBase) |
| GetAccountAsync(String) |
Haal de IAccount id op van de accounts die beschikbaar zijn in de tokencache. (Overgenomen van ClientApplicationBase) |
| GetAccountsAsync() |
Retourneert alle beschikbare accounts in de cache van het gebruikerstoken voor de toepassing. (Overgenomen van ClientApplicationBase) |
| GetAccountsAsync(CancellationToken) |
Retourneert alle beschikbare accounts in de cache van het gebruikerstoken voor de toepassing. (Overgenomen van ClientApplicationBase) |
| GetAccountsAsync(String, CancellationToken) |
Haal de IAccount verzameling op basis van de id op van de accounts die beschikbaar zijn in de tokencache, op basis van de gebruikersstroom. Dit is voor Azure AD B2C-scenario's. (Overgenomen van ClientApplicationBase) |
| GetAccountsAsync(String) |
Haal de IAccount verzameling op basis van de id op van de accounts die beschikbaar zijn in de tokencache, op basis van de gebruikersstroom. Dit is voor Azure AD B2C-scenario's. (Overgenomen van ClientApplicationBase) |
| IsBrokerAvailable() |
Retourneert |
| IsEmbeddedWebViewAvailable() |
Retourneert |
| IsProofOfPossessionSupportedByClient() |
Wordt gebruikt om te bepalen of de momenteel beschikbare broker proof-of-possession kan uitvoeren. |
| IsUserInteractive() |
Retourneert |
| RemoveAsync(IAccount, CancellationToken) |
Hiermee verwijdert u alle tokens in de cache voor het opgegeven account. (Overgenomen van ClientApplicationBase) |
| RemoveAsync(IAccount) |
Hiermee verwijdert u alle tokens in de cache voor het opgegeven account. (Overgenomen van ClientApplicationBase) |
Expliciete interface-implementaties
| Name | Description |
|---|---|
| IByRefreshToken.AcquireTokenByRefreshToken(IEnumerable<String>, String) |
Hiermee verkrijgt u een toegangstoken van een bestaand vernieuwingstoken en slaat u het op, en het vernieuwingstoken, in de cache van het gebruikerstoken, waar het beschikbaar is voor verdere AcquireTokenSilent-aanroepen. Deze methode kan worden gebruikt bij migratie naar MSAL vanuit ADAL v2 en in verschillende integratiescenario's waarin u een RefreshToken beschikbaar hebt. Zie https://aka.ms/msal-net-migration-adal2-msal2. |
Extensiemethoden
| Name | Description |
|---|---|
| IsEmbeddedWebViewAvailable(IPublicClientApplication) |
Retourneert waar als MSAL een ingesloten webweergave (browser) kan gebruiken. |
| IsProofOfPossessionSupportedByClient(IPublicClientApplication) |
Wordt gebruikt om te bepalen of de momenteel beschikbare broker proof-of-possession kan uitvoeren. |
| IsSystemWebViewAvailable(IPublicClientApplication) |
Retourneert waar als MSAL een systeembrowser kan gebruiken. |
| IsUserInteractive(IPublicClientApplication) |
Retourneert onwaar wanneer het programma wordt uitgevoerd in het hoofdloze besturingssysteem, bijvoorbeeld wanneer SSH is uitgevoerd op een Linux-computer. Browsers (webweergaven) en brokers kunnen niet worden gebruikt als er geen ui-ondersteuning is. Gebruik in plaats daarvan AcquireTokenWithDeviceCode(IEnumerable<String>, Func<DeviceCodeResult,Task>) of AcquireTokenByIntegratedWindowsAuth(IEnumerable<String>) |