public void GetTokenUsingDeviceCodeCredential()
        {
            string tenantId = TestEnvironment.TenantId;
            string clientId = TestEnvironment.ClientId;
            string mixedRealityAccountDomain = TestEnvironment.AccountDomain;
            string mixedRealityAccountId     = TestEnvironment.AccountId;

            #region Snippet:GetTokenUsingDefaultAzureCredential

            string authority = $"https://login.microsoftonline.com/{tenantId}";

            Task deviceCodeCallback(DeviceCodeInfo deviceCodeInfo, CancellationToken cancellationToken)
            {
                Debug.WriteLine(deviceCodeInfo.Message);
                Console.WriteLine(deviceCodeInfo.Message);
                return(Task.FromResult(0));
            }

            TokenCredential deviceCodeCredential = new DeviceCodeCredential(deviceCodeCallback, tenantId, clientId, new TokenCredentialOptions
            {
                AuthorityHost = new Uri(authority),
            });

            MixedRealityStsClient client = new MixedRealityStsClient(mixedRealityAccountId, mixedRealityAccountDomain, deviceCodeCredential);

            AccessToken token = client.GetToken();

            Console.WriteLine($"My access token ({token.Token}) expires on {token.ExpiresOn}.");

            #endregion Snippet:GetTokenUsingDefaultAzureCredential
        }
        public async Task GetToken()
        {
            MixedRealityStsClient client = CreateClient();

            AccessToken token = await client.GetTokenAsync();

            Assert.NotNull(token);
            Assert.NotNull(token.Token);
        }
        public void GetTokenUsingDefaultAzureCredential()
        {
            string mixedRealityAccountDomain = TestEnvironment.AccountDomain;
            string mixedRealityAccountId     = TestEnvironment.AccountId;

            #region Snippet:GetTokenUsingDefaultAzureCredential

            MixedRealityStsClient client = new MixedRealityStsClient(mixedRealityAccountId, mixedRealityAccountDomain, new DefaultAzureCredential());

            AccessToken token = client.GetToken();

            Console.WriteLine($"My access token ({token.Token}) expires on {token.ExpiresOn}.");

            #endregion Snippet:GetTokenUsingDefaultAzureCredential
        }
        public void GetTokenUsingClientSecretCredential()
        {
            string clientId     = TestEnvironment.ClientId;
            string clientSecret = TestEnvironment.ClientSecret;
            string tenantId     = TestEnvironment.TenantId;
            string mixedRealityAccountDomain = TestEnvironment.AccountDomain;
            string mixedRealityAccountId     = TestEnvironment.AccountId;

            #region Snippet:GetTokenUsingClientSecretCredential

            TokenCredential clientSecretCredential = new ClientSecretCredential(tenantId, clientId, clientSecret, new TokenCredentialOptions
            {
                AuthorityHost = new Uri($"https://login.microsoftonline.com/{tenantId}")
            });

            MixedRealityStsClient client = new MixedRealityStsClient(mixedRealityAccountId, mixedRealityAccountDomain, clientSecretCredential);

            AccessToken token = client.GetToken();

            Console.WriteLine($"My access token ({token.Token}) expires on {token.ExpiresOn}.");

            #endregion Snippet:GetTokenUsingClientSecretCredential
        }
        public void GetTokenUsingVisualStudioCredential()
        {
            string tenantId = TestEnvironment.TenantId;
            string mixedRealityAccountDomain = TestEnvironment.AccountDomain;
            string mixedRealityAccountId     = TestEnvironment.AccountId;

            #region Snippet:GetTokenUsingVisualStudioCredential

            string authority = $"https://login.microsoftonline.com/{tenantId}";

            VisualStudioCredential visualStudioCredential = new VisualStudioCredential(new VisualStudioCredentialOptions
            {
                AuthorityHost = new Uri(authority),
                TenantId      = tenantId,
            });

            MixedRealityStsClient client = new MixedRealityStsClient(mixedRealityAccountId, mixedRealityAccountDomain, visualStudioCredential);

            AccessToken token = client.GetToken();

            Console.WriteLine($"My access token ({token.Token}) expires on {token.ExpiresOn}.");

            #endregion Snippet:GetTokenUsingVisualStudioCredential
        }