in sdk/SdkSamples/Context/ScenarioContext.cs [128:169]
private async Task<AuthenticationResult> LoginUserToAad()
{
var tenantDomain = string.IsNullOrWhiteSpace(Configuration.UserAuthentication.Domain) ? this.Configuration.PartnerService.CommonDomain : this.Configuration.UserAuthentication.Domain;
var scopes = new string[] { $"{Configuration.UserAuthentication.ResourceUrl.OriginalString}/.default" };
AuthenticationResult result = null;
var app = PublicClientApplicationBuilder.Create(Configuration.UserAuthentication.ApplicationId)
.WithAuthority(this.Configuration.PartnerService.AuthenticationAuthorityEndpoint.OriginalString, tenantDomain, true)
.WithRedirectUri(this.Configuration.UserAuthentication.RedirectUrl.OriginalString)
.Build();
var accounts = await app.GetAccountsAsync();
try
{
result = await app.AcquireTokenSilent(scopes, accounts.FirstOrDefault())
.ExecuteAsync();
}
catch (MsalUiRequiredException ex)
{
// A MsalUiRequiredException happened on AcquireTokenSilent.
// This indicates you need to call AcquireTokenInteractive to acquire a token
System.Diagnostics.Debug.WriteLine($"MsalUiRequiredException: {ex.Message}");
try
{
result = await app.AcquireTokenInteractive(scopes)
.ExecuteAsync();
}
catch (MsalException msalex)
{
throw msalex;
}
}
catch (Exception ex)
{
throw ex;
}
return result;
}