diff --git a/Directory.Build.props b/Directory.Build.props
index 13c59d348..821031b72 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -29,6 +29,10 @@
true
+
+ true
+
+
true
@@ -105,17 +109,17 @@
5.0.12-*
5.0.12-*
5.0.0
-
+
6.0.0
5.0.8
6.0.1
-
+
5.0.0
6.0.0
-
+
- 6.0.0
+ 6.0.0
2.1.0
diff --git a/src/Microsoft.Identity.Web.DownstreamApi/DownstreamApi.HttpMethods.cs b/src/Microsoft.Identity.Web.DownstreamApi/DownstreamApi.HttpMethods.cs
index a4b50175f..16fbde98d 100644
--- a/src/Microsoft.Identity.Web.DownstreamApi/DownstreamApi.HttpMethods.cs
+++ b/src/Microsoft.Identity.Web.DownstreamApi/DownstreamApi.HttpMethods.cs
@@ -2,6 +2,7 @@
// Licensed under the MIT License.
using System;
+using System.Diagnostics.CodeAnalysis;
using System.Net.Http;
using System.Security.Claims;
using System.Threading;
@@ -14,6 +15,9 @@ namespace Microsoft.Identity.Web
internal partial class DownstreamApi : IDownstreamApi
{
///
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.DownstreamApi.DeserializeOutput(response, effectiveOptions)")]
+#endif
public async Task GetForUserAsync(
string? serviceName,
Action? downstreamApiOptionsOverride = null,
@@ -41,6 +45,9 @@ ex is InvalidOperationException
}
///
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.DownstreamApi.DeserializeOutput(response, effectiveOptions)")]
+#endif
public async Task GetForUserAsync(
string? serviceName,
TInput input,
@@ -76,6 +83,9 @@ ex is InvalidOperationException
}
///
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.DownstreamApi.DeserializeOutput(response, effectiveOptions)")]
+#endif
public async Task GetForAppAsync(
string? serviceName,
Action? downstreamApiOptionsOverride = null,
@@ -102,6 +112,9 @@ ex is InvalidOperationException
}
///
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.DownstreamApi.DeserializeOutput(response, effectiveOptions)")]
+#endif
public async Task GetForAppAsync(
string? serviceName,
TInput input,
@@ -136,6 +149,9 @@ ex is InvalidOperationException
}
///
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.DownstreamApi.DeserializeOutput(response, effectiveOptions)")]
+#endif
public async Task PostForUserAsync(
string? serviceName,
TInput input,
@@ -169,6 +185,9 @@ ex is InvalidOperationException
}
///
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.DownstreamApi.DeserializeOutput(response, effectiveOptions)")]
+#endif
public async Task PostForUserAsync(
string? serviceName,
TInput input,
@@ -204,6 +223,9 @@ ex is InvalidOperationException
}
///
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.DownstreamApi.DeserializeOutput(response, effectiveOptions)")]
+#endif
public async Task PostForAppAsync(
string? serviceName,
TInput input,
@@ -236,6 +258,9 @@ ex is InvalidOperationException
}
///
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.DownstreamApi.DeserializeOutput(response, effectiveOptions)")]
+#endif
public async Task PostForAppAsync(
string? serviceName,
TInput input,
@@ -270,6 +295,9 @@ ex is InvalidOperationException
}
///
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.DownstreamApi.DeserializeOutput(response, effectiveOptions)")]
+#endif
public async Task PutForUserAsync(
string? serviceName,
TInput input,
@@ -303,6 +331,9 @@ ex is InvalidOperationException
}
///
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.DownstreamApi.DeserializeOutput(response, effectiveOptions)")]
+#endif
public async Task PutForUserAsync(
string? serviceName,
TInput input,
@@ -338,6 +369,9 @@ ex is InvalidOperationException
}
///
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.DownstreamApi.DeserializeOutput(response, effectiveOptions)")]
+#endif
public async Task PutForAppAsync(
string? serviceName,
TInput input,
@@ -370,6 +404,9 @@ ex is InvalidOperationException
}
///
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.DownstreamApi.DeserializeOutput(response, effectiveOptions)")]
+#endif
public async Task PutForAppAsync(
string? serviceName,
TInput input,
@@ -406,6 +443,9 @@ ex is InvalidOperationException
#if !NETFRAMEWORK && !NETSTANDARD2_0
///
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.DownstreamApi.DeserializeOutput(response, effectiveOptions)")]
+#endif
public async Task PatchForUserAsync(
string? serviceName,
TInput input,
@@ -439,6 +479,9 @@ ex is InvalidOperationException
}
///
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.DownstreamApi.DeserializeOutput(response, effectiveOptions)")]
+#endif
public async Task PatchForUserAsync(
string? serviceName,
TInput input,
@@ -474,6 +517,9 @@ ex is InvalidOperationException
}
///
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.DownstreamApi.DeserializeOutput(response, effectiveOptions)")]
+#endif
public async Task PatchForAppAsync(
string? serviceName,
TInput input,
@@ -506,6 +552,9 @@ ex is InvalidOperationException
}
///
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.DownstreamApi.DeserializeOutput(response, effectiveOptions)")]
+#endif
public async Task PatchForAppAsync(
string? serviceName,
TInput input,
@@ -542,6 +591,9 @@ ex is InvalidOperationException
#endif // !NETFRAMEWORK && !NETSTANDARD2_0
///
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.DownstreamApi.DeserializeOutput(response, effectiveOptions)")]
+#endif
public async Task DeleteForUserAsync(
string? serviceName,
TInput input,
@@ -575,6 +627,9 @@ ex is InvalidOperationException
}
///
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.DownstreamApi.DeserializeOutput(response, effectiveOptions)")]
+#endif
public async Task DeleteForUserAsync(
string? serviceName,
TInput input,
@@ -610,6 +665,9 @@ ex is InvalidOperationException
}
///
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.DownstreamApi.DeserializeOutput(response, effectiveOptions)")]
+#endif
public async Task DeleteForAppAsync(
string? serviceName,
TInput input,
@@ -642,6 +700,9 @@ ex is InvalidOperationException
}
///
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.DownstreamApi.DeserializeOutput(response, effectiveOptions)")]
+#endif
public async Task DeleteForAppAsync(
string? serviceName,
TInput input,
diff --git a/src/Microsoft.Identity.Web.DownstreamApi/DownstreamApi.HttpMethods.tt b/src/Microsoft.Identity.Web.DownstreamApi/DownstreamApi.HttpMethods.tt
index 5207d97c0..053d7330a 100644
--- a/src/Microsoft.Identity.Web.DownstreamApi/DownstreamApi.HttpMethods.tt
+++ b/src/Microsoft.Identity.Web.DownstreamApi/DownstreamApi.HttpMethods.tt
@@ -8,6 +8,7 @@
// Licensed under the MIT License.
using System;
+using System.Diagnostics.CodeAnalysis;
using System.Net.Http;
using System.Security.Claims;
using System.Threading;
@@ -55,6 +56,9 @@ namespace Microsoft.Identity.Web
firstMethod = false;
#>
///
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.DownstreamApi.DeserializeOutput(response, effectiveOptions)")]
+#endif
public async <#= returnType #> <#= httpMethod #>For<#= token #>Async<#= template #>(
string? serviceName,
<# if (hasInput){ #>
diff --git a/src/Microsoft.Identity.Web.DownstreamApi/DownstreamApi.cs b/src/Microsoft.Identity.Web.DownstreamApi/DownstreamApi.cs
index 24b680786..aeaac078c 100644
--- a/src/Microsoft.Identity.Web.DownstreamApi/DownstreamApi.cs
+++ b/src/Microsoft.Identity.Web.DownstreamApi/DownstreamApi.cs
@@ -2,6 +2,7 @@
// Licensed under the MIT License.
using System;
+using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Net.Http;
using System.Runtime.CompilerServices;
@@ -96,6 +97,9 @@ public Task CallApiForAppAsync(
}
///
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.DownstreamApi.SerializeInput(TInput, DownstreamApiOptions)")]
+#endif
public async Task CallApiForUserAsync(
string? serviceName,
TInput input,
@@ -120,6 +124,9 @@ public Task CallApiForAppAsync(
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.DownstreamApi.SerializeInput(TInput, DownstreamApiOptions)")]
+#endif
public async Task CallApiForAppAsync(
string? serviceName,
TInput input,
@@ -142,6 +149,9 @@ public Task CallApiForAppAsync(
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.DownstreamApi.DeserializeOutput(HttpResponseMessage, DownstreamApiOptions)")]
+#endif
public async Task CallApiForAppAsync(string serviceName,
Action? downstreamApiOptionsOverride = null,
CancellationToken cancellationToken = default) where TOutput : class
@@ -154,6 +164,9 @@ public Task CallApiForAppAsync(
}
///
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.DownstreamApi.DeserializeOutput(HttpResponseMessage, DownstreamApiOptions)")]
+#endif
public async Task CallApiForUserAsync(
string? serviceName,
Action? downstreamApiOptionsOverride = null,
@@ -217,6 +230,9 @@ public Task CallApiForAppAsync(
return clonedOptions;
}
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls System.Text.Json.JsonSerializer.Serialize(TValue, JsonSerializerOptions)")]
+#endif
private static HttpContent? SerializeInput(TInput input, DownstreamApiOptions effectiveOptions)
{
HttpContent? effectiveInput;
@@ -238,6 +254,9 @@ public Task CallApiForAppAsync(
return effectiveInput;
}
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls System.Text.Json.JsonSerializer.Deserialize(String, JsonSerializerOptions)")]
+#endif
private static async Task DeserializeOutput(HttpResponseMessage response, DownstreamApiOptions effectiveOptions)
where TOutput : class
{
diff --git a/src/Microsoft.Identity.Web.DownstreamApi/DownstreamApiExtensions.cs b/src/Microsoft.Identity.Web.DownstreamApi/DownstreamApiExtensions.cs
index 21c45de48..ae5e08196 100644
--- a/src/Microsoft.Identity.Web.DownstreamApi/DownstreamApiExtensions.cs
+++ b/src/Microsoft.Identity.Web.DownstreamApi/DownstreamApiExtensions.cs
@@ -2,6 +2,7 @@
// Licensed under the MIT License.
using System;
+using System.Diagnostics.CodeAnalysis;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Identity.Abstractions;
@@ -21,6 +22,9 @@ public static class DownstreamApiExtensions
/// This is the name used when calling the service from controller/pages.
/// Configuration.
/// The builder for chaining.
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Microsoft.Extensions.DependencyInjection.OptionsConfigurationServiceCollectionExtensions.Configure(IServiceCollection, String, IConfiguration).")]
+#endif
public static IServiceCollection AddDownstreamApi(
this IServiceCollection services,
string serviceName,
@@ -65,6 +69,9 @@ public static IServiceCollection AddDownstreamApi(
/// This is the name used when calling the service from controller/pages.
/// Configuration.
/// The builder for chaining.
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Microsoft.Identity.Web.DownstreamApiExtensions.AddDownstreamApi(IServiceCollection, String, IConfiguration).")]
+#endif
public static MicrosoftIdentityAppCallsWebApiAuthenticationBuilder AddDownstreamApi(
this MicrosoftIdentityAppCallsWebApiAuthenticationBuilder builder,
string serviceName,
diff --git a/src/Microsoft.Identity.Web.MicrosoftGraph/MicrosoftGraphExtensions.cs b/src/Microsoft.Identity.Web.MicrosoftGraph/MicrosoftGraphExtensions.cs
index 3f407309b..77ef6a48d 100644
--- a/src/Microsoft.Identity.Web.MicrosoftGraph/MicrosoftGraphExtensions.cs
+++ b/src/Microsoft.Identity.Web.MicrosoftGraph/MicrosoftGraphExtensions.cs
@@ -3,6 +3,7 @@
using System;
using System.Collections.Generic;
+using System.Diagnostics.CodeAnalysis;
using System.Linq;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
@@ -24,6 +25,9 @@ public static class MicrosoftGraphExtensions
/// Builder.
/// Configuration section.
/// The builder to chain.
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Microsoft.Extensions.Configuration.ConfigurationBinder.Bind(IConfiguration, Object).")]
+#endif
public static MicrosoftIdentityAppCallsWebApiAuthenticationBuilder AddMicrosoftGraph(
this MicrosoftIdentityAppCallsWebApiAuthenticationBuilder builder,
IConfigurationSection configurationSection)
diff --git a/src/Microsoft.Identity.Web.TokenAcquisition/AspNetCore/ApplicationBuilderExtensions.cs b/src/Microsoft.Identity.Web.TokenAcquisition/AspNetCore/ApplicationBuilderExtensions.cs
index 105aa826d..bc6cf6145 100644
--- a/src/Microsoft.Identity.Web.TokenAcquisition/AspNetCore/ApplicationBuilderExtensions.cs
+++ b/src/Microsoft.Identity.Web.TokenAcquisition/AspNetCore/ApplicationBuilderExtensions.cs
@@ -1,6 +1,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
+using System.Diagnostics.CodeAnalysis;
using Microsoft.AspNetCore.Builder;
namespace Microsoft.Identity.Web
@@ -9,6 +10,9 @@ namespace Microsoft.Identity.Web
/// Extension class on IApplicationBuilder to initialize the service provider of
/// the TokenAcquirerFactory in ASP.NET Core.
///
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Microsoft.Identity.Web.TokenAcquirerFactory.GetDefaultInstance(String).")]
+#endif
public static class ApplicationBuilderExtensions
{
///
diff --git a/src/Microsoft.Identity.Web.TokenAcquisition/AspNetCore/TokenAcquisition-AspnetCore.cs b/src/Microsoft.Identity.Web.TokenAcquisition/AspNetCore/TokenAcquisition-AspnetCore.cs
index 1d665e66d..f23b107d5 100644
--- a/src/Microsoft.Identity.Web.TokenAcquisition/AspNetCore/TokenAcquisition-AspnetCore.cs
+++ b/src/Microsoft.Identity.Web.TokenAcquisition/AspNetCore/TokenAcquisition-AspnetCore.cs
@@ -3,6 +3,7 @@
using System;
using System.Collections.Generic;
+using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Net;
using System.Net.Http;
@@ -138,6 +139,9 @@ public void ReplyForbiddenWithWwwAuthenticateHeader(
/// }
///
///
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.TokenAcquisition.AddAccountToCacheFromAuthorizationCodeAsync(AuthCodeRedemptionParameters)")]
+#endif
public async Task AddAccountToCacheFromAuthorizationCodeAsync(
AuthorizationCodeReceivedContext context,
IEnumerable scopes,
diff --git a/src/Microsoft.Identity.Web.TokenAcquisition/ClientInfo.cs b/src/Microsoft.Identity.Web.TokenAcquisition/ClientInfo.cs
index 5596b0773..72c52e76e 100644
--- a/src/Microsoft.Identity.Web.TokenAcquisition/ClientInfo.cs
+++ b/src/Microsoft.Identity.Web.TokenAcquisition/ClientInfo.cs
@@ -2,6 +2,7 @@
// Licensed under the MIT License.
using System;
+using System.Diagnostics.CodeAnalysis;
using System.Text.Json;
using System.Text.Json.Serialization;
using Microsoft.Identity.Web.Util;
@@ -16,6 +17,9 @@ internal class ClientInfo
[JsonPropertyName(ClaimConstants.UniqueTenantIdentifier)]
public string? UniqueTenantIdentifier { get; set; } = null;
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.ClientInfo.DeserializeFromJson(byte[]).")]
+#endif
public static ClientInfo? CreateFromJson(string? clientInfo)
{
if (string.IsNullOrEmpty(clientInfo))
@@ -27,6 +31,9 @@ internal class ClientInfo
return bytes != null ? DeserializeFromJson(bytes) : null;
}
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls System.Text.Json.JsonSerializer.Deserialize(ReadOnlySpan, JsonSerializerOptions).")]
+#endif
internal static ClientInfo? DeserializeFromJson(byte[]? jsonByteArray)
{
if (jsonByteArray == null || jsonByteArray.Length == 0)
diff --git a/src/Microsoft.Identity.Web.TokenAcquisition/ITokenAcquisitionInternal.cs b/src/Microsoft.Identity.Web.TokenAcquisition/ITokenAcquisitionInternal.cs
index a93234c55..f43b8ef28 100644
--- a/src/Microsoft.Identity.Web.TokenAcquisition/ITokenAcquisitionInternal.cs
+++ b/src/Microsoft.Identity.Web.TokenAcquisition/ITokenAcquisitionInternal.cs
@@ -2,6 +2,7 @@
// Licensed under the MIT License.
using System.Collections.Generic;
+using System.Diagnostics.CodeAnalysis;
using System.Security.Claims;
using System.Threading.Tasks;
#if !NETSTANDARD2_0 && !NET462 && !NET472
@@ -48,6 +49,9 @@ internal interface ITokenAcquisitionInternal : ITokenAcquisition
/// }
///
///
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.TokenAcquisition.AddAccountToCacheFromAuthorizationCodeAsync(AuthCodeRedemptionParameters)")]
+#endif
Task AddAccountToCacheFromAuthorizationCodeAsync(
AuthorizationCodeReceivedContext context,
IEnumerable scopes,
diff --git a/src/Microsoft.Identity.Web.TokenAcquisition/MicrosoftIdentityAppCallingWebApiAuthenticationBuilder.cs b/src/Microsoft.Identity.Web.TokenAcquisition/MicrosoftIdentityAppCallingWebApiAuthenticationBuilder.cs
index ada5f856d..98b92d256 100644
--- a/src/Microsoft.Identity.Web.TokenAcquisition/MicrosoftIdentityAppCallingWebApiAuthenticationBuilder.cs
+++ b/src/Microsoft.Identity.Web.TokenAcquisition/MicrosoftIdentityAppCallingWebApiAuthenticationBuilder.cs
@@ -2,6 +2,7 @@
// Licensed under the MIT License.
using System;
+using System.Diagnostics.CodeAnalysis;
using Microsoft.Extensions.Caching.Memory;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
@@ -18,6 +19,9 @@ namespace Microsoft.Identity.Web
///
public class MicrosoftIdentityAppCallsWebApiAuthenticationBuilder : MicrosoftIdentityBaseAuthenticationBuilder
{
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.MicrosoftIdentityBaseAuthenticationBuilder.MicrosoftIdentityBaseAuthenticationBuilder(IServiceCollection, IConfigurationSection)")]
+#endif
internal MicrosoftIdentityAppCallsWebApiAuthenticationBuilder(
IServiceCollection services,
IConfigurationSection? configurationSection = null)
diff --git a/src/Microsoft.Identity.Web.TokenAcquisition/MicrosoftIdentityBaseAuthenticationBuilder.cs b/src/Microsoft.Identity.Web.TokenAcquisition/MicrosoftIdentityBaseAuthenticationBuilder.cs
index ed09a745d..da3819e20 100644
--- a/src/Microsoft.Identity.Web.TokenAcquisition/MicrosoftIdentityBaseAuthenticationBuilder.cs
+++ b/src/Microsoft.Identity.Web.TokenAcquisition/MicrosoftIdentityBaseAuthenticationBuilder.cs
@@ -8,6 +8,7 @@
using Microsoft.IdentityModel.Abstractions;
using Microsoft.IdentityModel.LoggingExtensions;
using Microsoft.IdentityModel.Logging;
+using System.Diagnostics.CodeAnalysis;
namespace Microsoft.Identity.Web
{
@@ -22,6 +23,9 @@ public class MicrosoftIdentityBaseAuthenticationBuilder
///
/// The services being configured.
/// Optional configuration section.
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Extensions.Configuration.ConfigurationBinder.Bind(IConfiguration, Object).")]
+#endif
protected MicrosoftIdentityBaseAuthenticationBuilder(
IServiceCollection services,
IConfigurationSection? configurationSection = null)
diff --git a/src/Microsoft.Identity.Web.TokenAcquisition/TokenAcquirerFactory.cs b/src/Microsoft.Identity.Web.TokenAcquisition/TokenAcquirerFactory.cs
index 91bdc36b3..3c2e9c38b 100644
--- a/src/Microsoft.Identity.Web.TokenAcquisition/TokenAcquirerFactory.cs
+++ b/src/Microsoft.Identity.Web.TokenAcquisition/TokenAcquirerFactory.cs
@@ -3,6 +3,7 @@
using System;
using System.Collections.Generic;
+using System.Diagnostics.CodeAnalysis;
using System.IO;
using System.Linq;
using System.Reflection;
@@ -73,6 +74,9 @@ protected TokenAcquirerFactory()
/// [!code-csharp[ConvertType](~/../tests/DevApps/aspnet-mvc/OwinWebApp/App_Start/Startup.Auth.cs?highlight=22)]
/// ]]>
///
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Extensions.Configuration.ConfigurationBinder.Bind(IConfiguration, Object).")]
+#endif
static public T GetDefaultInstance(string configSection="AzureAd") where T : TokenAcquirerFactory, new()
{
T instance;
@@ -108,6 +112,9 @@ protected TokenAcquirerFactory()
/// [!code-csharp[ConvertType](~/../tests/DevApps/daemon-app/daemon-console-calling-msgraph/Program.cs?highlight=5)]
/// ]]>
///
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Extensions.Configuration.ConfigurationBinder.Bind(IConfiguration, Object).")]
+#endif
static public TokenAcquirerFactory GetDefaultInstance(string configSection = "AzureAd")
{
TokenAcquirerFactory instance;
diff --git a/src/Microsoft.Identity.Web.TokenAcquisition/TokenAcquisition.cs b/src/Microsoft.Identity.Web.TokenAcquisition/TokenAcquisition.cs
index d412ede3a..f701fc8cf 100644
--- a/src/Microsoft.Identity.Web.TokenAcquisition/TokenAcquisition.cs
+++ b/src/Microsoft.Identity.Web.TokenAcquisition/TokenAcquisition.cs
@@ -4,6 +4,7 @@
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
+using System.Diagnostics.CodeAnalysis;
using System.Globalization;
using System.IdentityModel.Tokens.Jwt;
using System.Linq;
@@ -102,6 +103,9 @@ public TokenAcquisition(
_credentialsLoader = credentialsLoader;
}
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.ClientInfo.CreateFromJson(String)")]
+#endif
public async Task AddAccountToCacheFromAuthorizationCodeAsync(
AuthCodeRedemptionParameters authCodeRedemptionParameters)
{
diff --git a/src/Microsoft.Identity.Web.TokenAcquisition/WebApiBuilders.cs b/src/Microsoft.Identity.Web.TokenAcquisition/WebApiBuilders.cs
index 123484d75..7eb916311 100644
--- a/src/Microsoft.Identity.Web.TokenAcquisition/WebApiBuilders.cs
+++ b/src/Microsoft.Identity.Web.TokenAcquisition/WebApiBuilders.cs
@@ -2,6 +2,7 @@
// Licensed under the MIT License.
using System;
+using System.Diagnostics.CodeAnalysis;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Identity.Abstractions;
@@ -25,6 +26,9 @@ public static class WebApiBuilders
/// The services being configured.
/// IConfigurationSection.
/// The authentication builder to chain.
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Bind, Configure with Unspecified Configuration and ServiceCollection.")]
+#endif
public static MicrosoftIdentityAppCallsWebApiAuthenticationBuilder EnableTokenAcquisition(
Action configureConfidentialClientApplicationOptions,
string authenticationScheme,
diff --git a/src/Microsoft.Identity.Web/AuthorizeForScopesAttribute.cs b/src/Microsoft.Identity.Web/AuthorizeForScopesAttribute.cs
index eb1f48456..540768a73 100644
--- a/src/Microsoft.Identity.Web/AuthorizeForScopesAttribute.cs
+++ b/src/Microsoft.Identity.Web/AuthorizeForScopesAttribute.cs
@@ -2,6 +2,7 @@
// Licensed under the MIT License.
using System;
+using System.Diagnostics.CodeAnalysis;
using System.Globalization;
using System.Security.Claims;
using Microsoft.AspNetCore.Authentication;
@@ -89,7 +90,7 @@ public override void OnException(ExceptionContext context)
IDWebErrorMessage.ScopeKeySectionIsProvidedButNotPresentInTheServicesCollection,
nameof(ScopeKeySection)));
}
- string? scopeKeySectionValue = configuration.GetValue(ScopeKeySection);
+ string? scopeKeySectionValue = configuration[ScopeKeySection];
if (!string.IsNullOrEmpty(scopeKeySectionValue))
{
diff --git a/src/Microsoft.Identity.Web/DownstreamWebApiSupport/DownstreamWebApi.cs b/src/Microsoft.Identity.Web/DownstreamWebApiSupport/DownstreamWebApi.cs
index 48d794f23..faae19acf 100644
--- a/src/Microsoft.Identity.Web/DownstreamWebApiSupport/DownstreamWebApi.cs
+++ b/src/Microsoft.Identity.Web/DownstreamWebApiSupport/DownstreamWebApi.cs
@@ -3,6 +3,7 @@
using System;
using System.ComponentModel;
+using System.Diagnostics.CodeAnalysis;
using System.Net.Http;
using System.Security.Claims;
using System.Text;
@@ -107,6 +108,9 @@ public async Task CallWebApiForUserAsync(
}
///
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls System.Text.Json.JsonSerializer.Serialize(TValue, JsonSerializerOptions).")]
+#endif
public async Task CallWebApiForUserAsync(
string serviceName,
TInput input,
diff --git a/src/Microsoft.Identity.Web/DownstreamWebApiSupport/DownstreamWebApiExtensions.cs b/src/Microsoft.Identity.Web/DownstreamWebApiSupport/DownstreamWebApiExtensions.cs
index 19bff2311..9e4a09634 100644
--- a/src/Microsoft.Identity.Web/DownstreamWebApiSupport/DownstreamWebApiExtensions.cs
+++ b/src/Microsoft.Identity.Web/DownstreamWebApiSupport/DownstreamWebApiExtensions.cs
@@ -3,6 +3,7 @@
using System;
using System.ComponentModel;
+using System.Diagnostics.CodeAnalysis;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
@@ -24,6 +25,9 @@ public static class DownstreamWebApiExtensions
[Obsolete("Use AddDownstreamApi in Microsoft.Identity.Abstractions, implemented in Microsoft.Identity.Web.DownstreamApi." +
"See aka.ms/id-web-downstream-api-v2 for migration details.", false)]
[EditorBrowsable(EditorBrowsableState.Never)]
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Extensions.DependencyInjection.OptionsConfigurationServiceCollectionExtensions.Configure(IServiceCollection, String, IConfiguration).")]
+#endif
public static MicrosoftIdentityAppCallsWebApiAuthenticationBuilder AddDownstreamWebApi(
this MicrosoftIdentityAppCallsWebApiAuthenticationBuilder builder,
string serviceName,
diff --git a/src/Microsoft.Identity.Web/DownstreamWebApiSupport/DownstreamWebApiGenericExtensions.cs b/src/Microsoft.Identity.Web/DownstreamWebApiSupport/DownstreamWebApiGenericExtensions.cs
index 40fee1efb..141c8b788 100644
--- a/src/Microsoft.Identity.Web/DownstreamWebApiSupport/DownstreamWebApiGenericExtensions.cs
+++ b/src/Microsoft.Identity.Web/DownstreamWebApiSupport/DownstreamWebApiGenericExtensions.cs
@@ -3,6 +3,7 @@
using System;
using System.ComponentModel;
+using System.Diagnostics.CodeAnalysis;
using System.Net.Http;
using System.Security.Claims;
using System.Text;
@@ -37,6 +38,9 @@ public static class DownstreamWebApiGenericExtensions
[Obsolete("Use IDownstreamApi.GetForUserAsync in Microsoft.Identity.Abstractions, implemented in Microsoft.Identity.Web.DownstreamApi." +
"See aka.ms/id-web-downstream-api-v2 for migration details.", false)]
[EditorBrowsable(EditorBrowsableState.Never)]
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.DownstreamWebApiGenericExtensions.ConvertToOutput(TInput).")]
+#endif
public static async Task GetForUserAsync(
this IDownstreamWebApi downstreamWebApi,
string serviceName,
@@ -78,6 +82,9 @@ public static class DownstreamWebApiGenericExtensions
[Obsolete("Use IDownstreamApi.GetForUserAsync in Microsoft.Identity.Abstractions, implemented in Microsoft.Identity.Web.DownstreamApi." +
"See aka.ms/id-web-downstream-api-v2 for migration details.", false)]
[EditorBrowsable(EditorBrowsableState.Never)]
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.DownstreamWebApiGenericExtensions.ConvertFromInput(TInput).")]
+#endif
public static async Task GetForUserAsync(
this IDownstreamWebApi downstreamWebApi,
string serviceName,
@@ -122,6 +129,9 @@ await downstreamWebApi.CallWebApiForUserAsync(
[Obsolete("Use IDownstreamApi.PostForUserAsync in Microsoft.Identity.Abstractions, implemented in Microsoft.Identity.Web.DownstreamApi." +
"See aka.ms/id-web-downstream-api-v2 for migration details.", false)]
[EditorBrowsable(EditorBrowsableState.Never)]
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.DownstreamWebApiGenericExtensions.ConvertToOutput(TInput).")]
+#endif
public static async Task PostForUserAsync(
this IDownstreamWebApi downstreamWebApi,
string serviceName,
@@ -168,6 +178,9 @@ await downstreamWebApi.CallWebApiForUserAsync(
[Obsolete("Use IDownstreamApi.PutForUserAsync in Microsoft.Identity.Abstractions, implemented in Microsoft.Identity.Web.DownstreamApi." +
"See aka.ms/id-web-downstream-api-v2 for migration details.", false)]
[EditorBrowsable(EditorBrowsableState.Never)]
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.DownstreamWebApiGenericExtensions.ConvertFromInput(TInput).")]
+#endif
public static async Task PutForUserAsync(
this IDownstreamWebApi downstreamWebApi,
string serviceName,
@@ -213,6 +226,9 @@ await downstreamWebApi.CallWebApiForUserAsync(
[Obsolete("Use IDownstreamApi.PutForUserAsync in Microsoft.Identity.Abstractions, implemented in Microsoft.Identity.Web.DownstreamApi." +
"See aka.ms/id-web-downstream-api-v2 for migration details.", false)]
[EditorBrowsable(EditorBrowsableState.Never)]
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.DownstreamWebApiGenericExtensions.ConvertToOutput(TInput).")]
+#endif
public static async Task PutForUserAsync(
this IDownstreamWebApi downstreamWebApi,
string serviceName,
@@ -258,6 +274,9 @@ await downstreamWebApi.CallWebApiForUserAsync(
[Obsolete("Use IDownstreamApi.CallWebApiForUserAsync in Microsoft.Identity.Abstractions, implemented in Microsoft.Identity.Web.DownstreamApi." +
"See aka.ms/id-web-downstream-api-v2 for migration details.", false)]
[EditorBrowsable(EditorBrowsableState.Never)]
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.DownstreamWebApiGenericExtensions.ConvertToOutput(TInput).")]
+#endif
public static async Task CallWebApiForUserAsync(
this IDownstreamWebApi downstreamWebApi,
string serviceName,
@@ -277,11 +296,17 @@ await downstreamWebApi.CallWebApiForUserAsync(
return await ConvertToOutput(response).ConfigureAwait(false);
}
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls System.Text.Json.JsonSerializer.Serialize(TValue, JsonSerializerOptions).")]
+#endif
private static StringContent ConvertFromInput(TInput input)
{
return new StringContent(JsonSerializer.Serialize(input), Encoding.UTF8, "application/json");
}
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls System.Text.Json.JsonSerializer.Deserialize(String, JsonSerializerOptions).")]
+#endif
private static async Task ConvertToOutput(HttpResponseMessage response)
where TOutput : class
{
diff --git a/src/Microsoft.Identity.Web/DownstreamWebApiSupport/IDownstreamWebApi.cs b/src/Microsoft.Identity.Web/DownstreamWebApiSupport/IDownstreamWebApi.cs
index d78f756f4..abcbe8de8 100644
--- a/src/Microsoft.Identity.Web/DownstreamWebApiSupport/IDownstreamWebApi.cs
+++ b/src/Microsoft.Identity.Web/DownstreamWebApiSupport/IDownstreamWebApi.cs
@@ -3,6 +3,7 @@
using System;
using System.ComponentModel;
+using System.Diagnostics.CodeAnalysis;
using System.Net.Http;
using System.Security.Claims;
using System.Threading.Tasks;
@@ -118,6 +119,9 @@ Task CallWebApiForUserAsync(
/// }
///
///
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls System.Text.Json.JsonSerializer.Serialize(TValue, JsonSerializerOptions).")]
+#endif
public Task CallWebApiForUserAsync(
string serviceName,
TInput input,
@@ -181,6 +185,9 @@ Task CallWebApiForUserAsync(
/// }
///
///
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls System.Text.Json.JsonSerializer.Serialize(TValue, JsonSerializerOptions).")]
+#endif
Task CallWebApiForUserAsync(
string serviceName,
TInput input,
diff --git a/src/Microsoft.Identity.Web/DownstreamWebApiSupport/MicrosoftIdentityAuthenticationMessageHandlerHttpClientBuilderExtensions.cs b/src/Microsoft.Identity.Web/DownstreamWebApiSupport/MicrosoftIdentityAuthenticationMessageHandlerHttpClientBuilderExtensions.cs
index a086a7f4f..fd16a69bc 100644
--- a/src/Microsoft.Identity.Web/DownstreamWebApiSupport/MicrosoftIdentityAuthenticationMessageHandlerHttpClientBuilderExtensions.cs
+++ b/src/Microsoft.Identity.Web/DownstreamWebApiSupport/MicrosoftIdentityAuthenticationMessageHandlerHttpClientBuilderExtensions.cs
@@ -2,6 +2,7 @@
// Licensed under the MIT License.
using System;
+using System.Diagnostics.CodeAnalysis;
using System.Net.Http;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
@@ -21,6 +22,9 @@ public static class MicrosoftIdentityAuthenticationMessageHandlerHttpClientBuild
/// Name of the configuration for the service.
/// Configuration.
/// The builder for chaining.
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Extensions.DependencyInjection.OptionsConfigurationServiceCollectionExtensions.Configure(IServiceCollection, String, IConfiguration).")]
+#endif
public static IHttpClientBuilder AddMicrosoftIdentityUserAuthenticationHandler(
this IHttpClientBuilder builder,
string serviceName,
@@ -61,6 +65,9 @@ public static IHttpClientBuilder AddMicrosoftIdentityUserAuthenticationHandler(
/// Name of the configuration for the service.
/// Configuration.
/// The builder for chaining.
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Extensions.DependencyInjection.OptionsConfigurationServiceCollectionExtensions.Configure(IServiceCollection, String, IConfiguration).")]
+#endif
public static IHttpClientBuilder AddMicrosoftIdentityAppAuthenticationHandler(
this IHttpClientBuilder builder,
string serviceName,
diff --git a/src/Microsoft.Identity.Web/Policy/ScopeAuthorizationHandler.cs b/src/Microsoft.Identity.Web/Policy/ScopeAuthorizationHandler.cs
index 8f066d841..af8d416a2 100644
--- a/src/Microsoft.Identity.Web/Policy/ScopeAuthorizationHandler.cs
+++ b/src/Microsoft.Identity.Web/Policy/ScopeAuthorizationHandler.cs
@@ -60,7 +60,7 @@ protected override Task HandleRequirementAsync(
if (configurationKey != null)
{
- scopes = _configuration.GetValue(configurationKey)?.Split(' ');
+ scopes = _configuration[configurationKey]?.Split(' ');
}
if (scopes is null)
diff --git a/src/Microsoft.Identity.Web/Policy/ScopeOrAppPermissionAuthorizationHandler.cs b/src/Microsoft.Identity.Web/Policy/ScopeOrAppPermissionAuthorizationHandler.cs
index 551fab883..ae3dd9e64 100644
--- a/src/Microsoft.Identity.Web/Policy/ScopeOrAppPermissionAuthorizationHandler.cs
+++ b/src/Microsoft.Identity.Web/Policy/ScopeOrAppPermissionAuthorizationHandler.cs
@@ -3,6 +3,7 @@
using System;
using System.Collections.Generic;
+using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Security.Claims;
using System.Threading.Tasks;
@@ -62,7 +63,7 @@ protected override Task HandleRequirementAsync(
if (scopeConfigurationKey != null)
{
- scopes = _configuration.GetValue(scopeConfigurationKey)?.Split(' ');
+ scopes = _configuration[scopeConfigurationKey]?.Split(' ');
}
if (scopes is null)
diff --git a/src/Microsoft.Identity.Web/WebApiExtensions/MicrosoftIdentityWebApiAuthenticationBuilder.cs b/src/Microsoft.Identity.Web/WebApiExtensions/MicrosoftIdentityWebApiAuthenticationBuilder.cs
index 7df685320..8297ee94e 100644
--- a/src/Microsoft.Identity.Web/WebApiExtensions/MicrosoftIdentityWebApiAuthenticationBuilder.cs
+++ b/src/Microsoft.Identity.Web/WebApiExtensions/MicrosoftIdentityWebApiAuthenticationBuilder.cs
@@ -2,6 +2,7 @@
// Licensed under the MIT License.
using System;
+using System.Diagnostics.CodeAnalysis;
using System.IdentityModel.Tokens.Jwt;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.Extensions.Configuration;
@@ -26,6 +27,9 @@ public class MicrosoftIdentityWebApiAuthenticationBuilder : MicrosoftIdentityBas
/// the Microsoft identity options.
/// Configuration section from which to
/// get parameters.
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.MicrosoftIdentityBaseAuthenticationBuilder.MicrosoftIdentityBaseAuthenticationBuilder(IServiceCollection, IConfigurationSection).")]
+#endif
internal MicrosoftIdentityWebApiAuthenticationBuilder(
IServiceCollection services,
string jwtBearerAuthenticationScheme,
@@ -48,6 +52,9 @@ internal MicrosoftIdentityWebApiAuthenticationBuilder(
///
/// The action to configure .
/// The authentication builder to chain.
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.Internal.WebApiBuilders.EnableTokenAcquisition(IServiceCollection, string, Action, IConfigurationSection).")]
+#endif
public MicrosoftIdentityAppCallsWebApiAuthenticationBuilder EnableTokenAcquisitionToCallDownstreamApi(
Action configureConfidentialClientApplicationOptions)
{
@@ -64,6 +71,9 @@ public MicrosoftIdentityAppCallsWebApiAuthenticationBuilder EnableTokenAcquisiti
ConfigurationSection);
}
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.Internal.WebApiBuilders.EnableTokenAcquisition(Action, String, IServiceCollection, IConfigurationSection).")]
+#endif
internal static void CallsWebApiImplementation(
IServiceCollection services,
string jwtBearerAuthenticationScheme,
diff --git a/src/Microsoft.Identity.Web/WebApiExtensions/MicrosoftIdentityWebApiAuthenticationBuilderExtensions.cs b/src/Microsoft.Identity.Web/WebApiExtensions/MicrosoftIdentityWebApiAuthenticationBuilderExtensions.cs
index 4c65e7f3e..2a2821b67 100644
--- a/src/Microsoft.Identity.Web/WebApiExtensions/MicrosoftIdentityWebApiAuthenticationBuilderExtensions.cs
+++ b/src/Microsoft.Identity.Web/WebApiExtensions/MicrosoftIdentityWebApiAuthenticationBuilderExtensions.cs
@@ -3,6 +3,7 @@
using System;
using System.Collections.Generic;
+using System.Diagnostics.CodeAnalysis;
using System.Globalization;
using System.Linq;
using System.Security.Cryptography.X509Certificates;
@@ -34,6 +35,9 @@ public static class MicrosoftIdentityWebApiAuthenticationBuilderExtensions
/// Set to true if you want to debug, or just understand the JWT bearer events.
///
/// The authentication builder to chain.
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.MicrosoftIdentityWebApiAuthneticationBuilderExtensions.AddMicrosoftIdentityWebApi(AuthenticationBuilder, IConfigurationSection, string, bool).")]
+#endif
public static MicrosoftIdentityWebApiAuthenticationBuilderWithConfiguration AddMicrosoftIdentityWebApi(
this AuthenticationBuilder builder,
IConfiguration configuration,
@@ -63,6 +67,9 @@ public static MicrosoftIdentityWebApiAuthenticationBuilderWithConfiguration AddM
/// Set to true if you want to debug, or just understand the JWT bearer events.
///
/// The authentication builder to chain.
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Microsoft.Extensions.Configuration.ConfigurationBinder.Bind(IConfiguration, Object).")]
+#endif
public static MicrosoftIdentityWebApiAuthenticationBuilderWithConfiguration AddMicrosoftIdentityWebApi(
this AuthenticationBuilder builder,
IConfigurationSection configurationSection,
@@ -97,6 +104,9 @@ public static MicrosoftIdentityWebApiAuthenticationBuilderWithConfiguration AddM
///
/// Set to true if you want to debug, or just understand the JWT bearer events.
/// The authentication builder to chain.
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Microsoft.Identity.Web.MicrosoftIdentityWebApiAuthenticationBuilder.MicrosoftIdentityWebApiAuthenticationBuilder(IServiceCollection, String, Action, Action, IConfigurationSection).")]
+#endif
public static MicrosoftIdentityWebApiAuthenticationBuilder AddMicrosoftIdentityWebApi(
this AuthenticationBuilder builder,
Action configureJwtBearerOptions,
diff --git a/src/Microsoft.Identity.Web/WebApiExtensions/MicrosoftIdentityWebApiAuthenticationBuilderWithConfiguration.cs b/src/Microsoft.Identity.Web/WebApiExtensions/MicrosoftIdentityWebApiAuthenticationBuilderWithConfiguration.cs
index 55ec24238..f9b55d71f 100644
--- a/src/Microsoft.Identity.Web/WebApiExtensions/MicrosoftIdentityWebApiAuthenticationBuilderWithConfiguration.cs
+++ b/src/Microsoft.Identity.Web/WebApiExtensions/MicrosoftIdentityWebApiAuthenticationBuilderWithConfiguration.cs
@@ -2,6 +2,7 @@
// Licensed under the MIT License.
using System;
+using System.Diagnostics.CodeAnalysis;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
@@ -11,6 +12,9 @@ namespace Microsoft.Identity.Web
///
/// Builder for web API authentication with configuration.
///
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Microsoft.Identity.Web.MicrosoftIdentityWebApiAuthenticationBuilder.MicrosoftIdentityWebApiAuthenticationBuilder(IServiceCollection, String, Action, Action, IConfigurationSection).")]
+#endif
public class MicrosoftIdentityWebApiAuthenticationBuilderWithConfiguration : MicrosoftIdentityWebApiAuthenticationBuilder
{
internal MicrosoftIdentityWebApiAuthenticationBuilderWithConfiguration(
@@ -29,6 +33,9 @@ internal MicrosoftIdentityWebApiAuthenticationBuilderWithConfiguration(
/// This method expects the configuration file will have a section, named "AzureAd" as default, with the necessary settings to initialize authentication options.
///
/// The authentication builder to chain.
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Extensions.Configuration.ConfigurationBinder.Bind(IConfiguration, Object).")]
+#endif
public MicrosoftIdentityAppCallsWebApiAuthenticationBuilder EnableTokenAcquisitionToCallDownstreamApi()
{
return EnableTokenAcquisitionToCallDownstreamApi(options => ConfigurationSection?.Bind(options));
diff --git a/src/Microsoft.Identity.Web/WebApiExtensions/MicrosoftIdentityWebApiServiceCollectionExtensions.cs b/src/Microsoft.Identity.Web/WebApiExtensions/MicrosoftIdentityWebApiServiceCollectionExtensions.cs
index 1f8c4236a..e9c75867c 100644
--- a/src/Microsoft.Identity.Web/WebApiExtensions/MicrosoftIdentityWebApiServiceCollectionExtensions.cs
+++ b/src/Microsoft.Identity.Web/WebApiExtensions/MicrosoftIdentityWebApiServiceCollectionExtensions.cs
@@ -1,6 +1,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
+using System.Diagnostics.CodeAnalysis;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.Extensions.Configuration;
@@ -24,6 +25,9 @@ public static partial class MicrosoftIdentityWebApiServiceCollectionExtensions
///
/// Set to true if you want to debug, or just understand the JwtBearer events.
/// The authentication builder to chain extension methods.
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Microsoft.Identity.Web.MicrosoftIdentityWebApiAuthenticationBuilderExtensions.AddMicrosoftIdentityWebApi(AuthenticationBuilder, IConfiguration, String, String, Boolean).")]
+#endif
public static MicrosoftIdentityWebApiAuthenticationBuilderWithConfiguration AddMicrosoftIdentityWebApiAuthentication(
this IServiceCollection services,
IConfiguration configuration,
diff --git a/src/Microsoft.Identity.Web/WebAppExtensions/MicrosoftIdentityWebAppAuthenticationBuilder.cs b/src/Microsoft.Identity.Web/WebAppExtensions/MicrosoftIdentityWebAppAuthenticationBuilder.cs
index 0ed1174e8..178063089 100644
--- a/src/Microsoft.Identity.Web/WebAppExtensions/MicrosoftIdentityWebAppAuthenticationBuilder.cs
+++ b/src/Microsoft.Identity.Web/WebAppExtensions/MicrosoftIdentityWebAppAuthenticationBuilder.cs
@@ -3,6 +3,7 @@
using System;
using System.Collections.Generic;
+using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Security.Claims;
using Microsoft.AspNetCore.Authentication.OpenIdConnect;
@@ -28,6 +29,9 @@ public class MicrosoftIdentityWebAppAuthenticationBuilder : MicrosoftIdentityBas
/// Action called to configure
/// the Microsoft identity options.
/// Optional configuration section.
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.MicrosoftIdentityBaseAuthenticationBuilder.MicrosoftIdentityBaseAuthenticationBuilder(IServiceCollection, IConfigurationSection).")]
+#endif
internal MicrosoftIdentityWebAppAuthenticationBuilder(
IServiceCollection services,
string openIdConnectScheme,
@@ -48,6 +52,9 @@ internal MicrosoftIdentityWebAppAuthenticationBuilder(
///
/// Initial scopes.
/// The builder itself for chaining.
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.MicrosoftIdentityBaseAuthenticationBuilder.MicrosoftIdentityBaseAuthenticationBuilder(IServiceCollection, IConfigurationSection).")]
+#endif
public MicrosoftIdentityAppCallsWebApiAuthenticationBuilder EnableTokenAcquisitionToCallDownstreamApi(
IEnumerable? initialScopes = null)
{
@@ -62,6 +69,9 @@ public MicrosoftIdentityAppCallsWebApiAuthenticationBuilder EnableTokenAcquisiti
/// MSAL.NET confidential client application options.
/// Initial scopes.
/// The builder itself for chaining.
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.MicrosoftIdentityWebAppAuthenticationBuilder.WebAppCallsWebApiImplementation(IServiceCollection, IEnumerable, Action, string, Action.")]
+#endif
public MicrosoftIdentityAppCallsWebApiAuthenticationBuilder EnableTokenAcquisitionToCallDownstreamApi(
Action? configureConfidentialClientApplicationOptions,
IEnumerable? initialScopes = null)
@@ -77,6 +87,9 @@ public MicrosoftIdentityAppCallsWebApiAuthenticationBuilder EnableTokenAcquisiti
ConfigurationSection);
}
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.ClientInfo.CreateFromJson(string).")]
+#endif
internal static void WebAppCallsWebApiImplementation(
IServiceCollection services,
IEnumerable? initialScopes,
@@ -105,7 +118,7 @@ internal static void WebAppCallsWebApiImplementation(
{
services.AddTokenAcquisition();
- services.AddOptions(openIdConnectScheme)
+ _ = services.AddOptions(openIdConnectScheme)
.Configure, IOptions>((
options,
mergedOptionsMonitor,
diff --git a/src/Microsoft.Identity.Web/WebAppExtensions/MicrosoftIdentityWebAppAuthenticationBuilderExtensions.cs b/src/Microsoft.Identity.Web/WebAppExtensions/MicrosoftIdentityWebAppAuthenticationBuilderExtensions.cs
index f3932d70a..34c850d7b 100644
--- a/src/Microsoft.Identity.Web/WebAppExtensions/MicrosoftIdentityWebAppAuthenticationBuilderExtensions.cs
+++ b/src/Microsoft.Identity.Web/WebAppExtensions/MicrosoftIdentityWebAppAuthenticationBuilderExtensions.cs
@@ -15,6 +15,7 @@
using Microsoft.Identity.Web.Resource;
using Microsoft.IdentityModel.Protocols.OpenIdConnect;
using System.Linq;
+using System.Diagnostics.CodeAnalysis;
namespace Microsoft.Identity.Web
{
@@ -36,6 +37,9 @@ public static class MicrosoftIdentityWebAppAuthenticationBuilderExtensions
/// Set to true if you want to debug, or just understand the OpenID Connect events.
/// A display name for the authentication handler.
/// The builder for chaining.
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls a trim-incompatible AddMicrosoftIdentityWebApp.")]
+#endif
public static MicrosoftIdentityWebAppAuthenticationBuilderWithConfiguration AddMicrosoftIdentityWebApp(
this AuthenticationBuilder builder,
IConfiguration configuration,
@@ -76,6 +80,9 @@ public static MicrosoftIdentityWebAppAuthenticationBuilderWithConfiguration AddM
/// Set to true if you want to debug, or just understand the OpenID Connect events.
/// A display name for the authentication handler.
/// The authentication builder for chaining.
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Extensions.Configuration.ConfigurationBinder.Bind(IConfiguration, Object).")]
+#endif
public static MicrosoftIdentityWebAppAuthenticationBuilderWithConfiguration AddMicrosoftIdentityWebApp(
this AuthenticationBuilder builder,
IConfigurationSection configurationSection,
@@ -108,6 +115,9 @@ public static MicrosoftIdentityWebAppAuthenticationBuilderWithConfiguration AddM
/// Set to true if you want to debug, or just understand the OpenID Connect events.
/// A display name for the authentication handler.
/// The authentication builder for chaining.
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Microsoft.Identity.Web.MicrosoftIdentityWebAppAuthenticationBuilderExtensions.AddMicrosoftWebAppWithoutConfiguration(AuthenticationBuilder, Action, Action, String, String, Boolean, String).")]
+#endif
public static MicrosoftIdentityWebAppAuthenticationBuilder AddMicrosoftIdentityWebApp(
this AuthenticationBuilder builder,
Action configureMicrosoftIdentityOptions,
@@ -140,6 +150,9 @@ public static MicrosoftIdentityWebAppAuthenticationBuilder AddMicrosoftIdentityW
/// A display name for the authentication handler.
/// Configuration section.
/// The authentication builder for chaining.
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.MicrosoftIdentityWebAppAuthenticationBuilderWithConfiguration.MicrosoftIdentityWebAppAuthenticationBuilderWithConfiguration(IServiceCollection, String, Action, IConfigurationSection)")]
+#endif
private static MicrosoftIdentityWebAppAuthenticationBuilderWithConfiguration AddMicrosoftIdentityWebAppWithConfiguration(
this AuthenticationBuilder builder,
Action configureMicrosoftIdentityOptions,
@@ -177,6 +190,9 @@ private static MicrosoftIdentityWebAppAuthenticationBuilderWithConfiguration Add
/// Set to true if you want to debug, or just understand the OpenID Connect events.
/// A display name for the authentication handler.
/// The authentication builder for chaining.
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.MicrosoftIdentityWebAppAuthenticationBuilder.MicrosoftIdentityWebAppAuthenticationBuilder(IServiceCollection, String, Action, IConfigurationSection)")]
+#endif
private static MicrosoftIdentityWebAppAuthenticationBuilder AddMicrosoftWebAppWithoutConfiguration(
this AuthenticationBuilder builder,
Action configureMicrosoftIdentityOptions,
diff --git a/src/Microsoft.Identity.Web/WebAppExtensions/MicrosoftIdentityWebAppAuthenticationBuilderWithConfiguration.cs b/src/Microsoft.Identity.Web/WebAppExtensions/MicrosoftIdentityWebAppAuthenticationBuilderWithConfiguration.cs
index 46d9d5a34..3ba3c9fd5 100644
--- a/src/Microsoft.Identity.Web/WebAppExtensions/MicrosoftIdentityWebAppAuthenticationBuilderWithConfiguration.cs
+++ b/src/Microsoft.Identity.Web/WebAppExtensions/MicrosoftIdentityWebAppAuthenticationBuilderWithConfiguration.cs
@@ -3,6 +3,7 @@
using System;
using System.Collections.Generic;
+using System.Diagnostics.CodeAnalysis;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
@@ -22,6 +23,9 @@ public class MicrosoftIdentityWebAppAuthenticationBuilderWithConfiguration : Mic
/// Action called to configure
/// the Microsoft identity options.
/// Optional configuration section.
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Identity.Web.MicrosoftIdentityWebAppAuthenticationBuilder.MicrosoftIdentityWebAppAuthenticationBuilder(IServiceCollection, String, Action, IConfigurationSection)")]
+#endif
internal MicrosoftIdentityWebAppAuthenticationBuilderWithConfiguration(
IServiceCollection services,
string openIdConnectScheme,
@@ -37,6 +41,9 @@ internal MicrosoftIdentityWebAppAuthenticationBuilderWithConfiguration(
///
/// Optional initial scopes to request.
/// The authentication builder for chaining.
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Calls Microsoft.Extensions.Configuration.ConfigurationBinder.Bind(IConfiguration, Object).")]
+#endif
public new MicrosoftIdentityAppCallsWebApiAuthenticationBuilder EnableTokenAcquisitionToCallDownstreamApi(
IEnumerable? initialScopes = null)
{
diff --git a/src/Microsoft.Identity.Web/WebAppExtensions/MicrosoftIdentityWebAppServiceCollectionExtensions.cs b/src/Microsoft.Identity.Web/WebAppExtensions/MicrosoftIdentityWebAppServiceCollectionExtensions.cs
index 0038e3969..8a1d1bb9b 100644
--- a/src/Microsoft.Identity.Web/WebAppExtensions/MicrosoftIdentityWebAppServiceCollectionExtensions.cs
+++ b/src/Microsoft.Identity.Web/WebAppExtensions/MicrosoftIdentityWebAppServiceCollectionExtensions.cs
@@ -1,6 +1,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
+using System.Diagnostics.CodeAnalysis;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authentication.Cookies;
using Microsoft.AspNetCore.Authentication.OpenIdConnect;
@@ -31,6 +32,10 @@ public static partial class MicrosoftIdentityWebAppServiceCollectionExtensions
/// Set to true if you want to debug, or just understand the OpenIdConnect events.
/// A display name for the authentication handler.
/// The authentication builder to chain extension methods.
+#if NET6_0_OR_GREATER
+ [RequiresUnreferencedCode("Microsoft.Identity.Web.MicrosoftIdentityWebAppAuthenticationBuilderExtensions.AddMicrosoftIdentityWebApp(AuthenticationBuilder, IConfiguration, String, String, String, Boolean, String).")]
+#endif
+
public static MicrosoftIdentityWebAppAuthenticationBuilderWithConfiguration AddMicrosoftIdentityWebAppAuthentication(
this IServiceCollection services,
IConfiguration configuration,