Skip to content

Commit ef6286f

Browse files
authored
Enable trimming on remaining middleware and security projects (#41688)
1 parent 374896b commit ef6286f

25 files changed

+87
-24
lines changed

eng/TrimmableProjects.props

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
<TrimmableProject Include="Microsoft.AspNetCore.DataProtection.EntityFrameworkCore" />
1515
<TrimmableProject Include="Microsoft.AspNetCore.DataProtection.Extensions" />
1616
<TrimmableProject Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" />
17+
<TrimmableProject Include="Microsoft.AspNetCore.Antiforgery" />
1718
<TrimmableProject Include="Microsoft.AspNetCore.Hosting.Abstractions" />
1819
<TrimmableProject Include="Microsoft.AspNetCore.Hosting" />
1920
<TrimmableProject Include="Microsoft.AspNetCore.Hosting.Server.Abstractions" />
@@ -37,7 +38,21 @@
3738
<TrimmableProject Include="Microsoft.AspNetCore.Server.Kestrel" />
3839
<TrimmableProject Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Quic" />
3940
<TrimmableProject Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets" />
41+
<TrimmableProject Include="Microsoft.AspNetCore.Authentication.Certificate" />
42+
<TrimmableProject Include="Microsoft.AspNetCore.Authentication.Cookies" />
43+
<TrimmableProject Include="Microsoft.AspNetCore.Authentication" />
44+
<TrimmableProject Include="Microsoft.AspNetCore.Authentication.Facebook" />
45+
<TrimmableProject Include="Microsoft.AspNetCore.Authentication.Google" />
46+
<TrimmableProject Include="Microsoft.AspNetCore.Authentication.JwtBearer" />
47+
<TrimmableProject Include="Microsoft.AspNetCore.Authentication.MicrosoftAccount" />
48+
<TrimmableProject Include="Microsoft.AspNetCore.Authentication.Negotiate" />
49+
<TrimmableProject Include="Microsoft.AspNetCore.Authentication.OAuth" />
50+
<TrimmableProject Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" />
51+
<TrimmableProject Include="Microsoft.AspNetCore.Authentication.Twitter" />
52+
<TrimmableProject Include="Microsoft.AspNetCore.Authentication.WsFederation" />
4053
<TrimmableProject Include="Microsoft.AspNetCore.Authorization" />
54+
<TrimmableProject Include="Microsoft.AspNetCore.Authorization.Policy" />
55+
<TrimmableProject Include="Microsoft.AspNetCore.CookiePolicy" />
4156
<TrimmableProject Include="Microsoft.AspNetCore.Cors" />
4257
<TrimmableProject Include="Microsoft.AspNetCore.Diagnostics.Abstractions" />
4358
<TrimmableProject Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" />
@@ -56,6 +71,7 @@
5671
<TrimmableProject Include="Microsoft.AspNetCore.ResponseCaching" />
5772
<TrimmableProject Include="Microsoft.AspNetCore.ResponseCompression" />
5873
<TrimmableProject Include="Microsoft.AspNetCore.Rewrite" />
74+
<TrimmableProject Include="Microsoft.AspNetCore.Session" />
5975
<TrimmableProject Include="Microsoft.AspNetCore.SpaProxy" />
6076
<TrimmableProject Include="Microsoft.AspNetCore.SpaServices.Extensions" />
6177
<TrimmableProject Include="Microsoft.AspNetCore.StaticFiles" />

src/Antiforgery/src/Microsoft.AspNetCore.Antiforgery.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<GenerateDocumentationFile>true</GenerateDocumentationFile>
88
<PackageTags>aspnetcore;antiforgery</PackageTags>
99
<IsPackable>false</IsPackable>
10-
<Nullable>enable</Nullable>
10+
<IsTrimmable>true</IsTrimmable>
1111
</PropertyGroup>
1212

1313
<ItemGroup>

src/Middleware/Session/src/Microsoft.AspNetCore.Session.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<GenerateDocumentationFile>true</GenerateDocumentationFile>
99
<PackageTags>aspnetcore;session;sessionstate</PackageTags>
1010
<IsPackable>false</IsPackable>
11-
<Nullable>enable</Nullable>
11+
<IsTrimmable>true</IsTrimmable>
1212
</PropertyGroup>
1313

1414
<ItemGroup>

src/Security/Authentication/Certificate/src/Microsoft.AspNetCore.Authentication.Certificate.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<DefineConstants>$(DefineConstants);SECURITY</DefineConstants>
77
<GenerateDocumentationFile>true</GenerateDocumentationFile>
88
<PackageTags>aspnetcore;authentication;security;x509;certificate</PackageTags>
9-
<Nullable>enable</Nullable>
9+
<IsTrimmable>true</IsTrimmable>
1010
</PropertyGroup>
1111

1212
<ItemGroup>

src/Security/Authentication/Cookies/src/Microsoft.AspNetCore.Authentication.Cookies.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<GenerateDocumentationFile>true</GenerateDocumentationFile>
99
<PackageTags>aspnetcore;authentication;security</PackageTags>
1010
<IsPackable>false</IsPackable>
11-
<Nullable>enable</Nullable>
11+
<IsTrimmable>true</IsTrimmable>
1212
</PropertyGroup>
1313

1414
<ItemGroup>

src/Security/Authentication/Core/src/AuthenticationBuilder.cs

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,12 @@ public AuthenticationBuilder(IServiceCollection services)
2929
where TOptions : AuthenticationSchemeOptions, new()
3030
where THandler : class, IAuthenticationHandler
3131
{
32+
var state = new AddSchemeHelperState(typeof(THandler));
3233
Services.Configure<AuthenticationOptions>(o =>
3334
{
3435
o.AddScheme(authenticationScheme, scheme =>
3536
{
36-
scheme.HandlerType = typeof(THandler);
37+
scheme.HandlerType = state.HandlerType;
3738
scheme.DisplayName = displayName;
3839
});
3940
});
@@ -50,6 +51,18 @@ public AuthenticationBuilder(IServiceCollection services)
5051
return this;
5152
}
5253

54+
// Workaround for linker bug: https://github.com/dotnet/linker/issues/1981
55+
private readonly struct AddSchemeHelperState
56+
{
57+
public AddSchemeHelperState([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] Type handlerType)
58+
{
59+
HandlerType = handlerType;
60+
}
61+
62+
[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)]
63+
public Type HandlerType { get; }
64+
}
65+
5366
/// <summary>
5467
/// Adds a <see cref="AuthenticationScheme"/> which can be used by <see cref="IAuthenticationService"/>.
5568
/// </summary>

src/Security/Authentication/Core/src/Microsoft.AspNetCore.Authentication.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<GenerateDocumentationFile>true</GenerateDocumentationFile>
88
<PackageTags>aspnetcore;authentication;security</PackageTags>
99
<IsPackable>false</IsPackable>
10-
<Nullable>enable</Nullable>
10+
<IsTrimmable>true</IsTrimmable>
1111
</PropertyGroup>
1212

1313
<ItemGroup>

src/Security/Authentication/Facebook/src/Microsoft.AspNetCore.Authentication.Facebook.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
66
<GenerateDocumentationFile>true</GenerateDocumentationFile>
77
<PackageTags>aspnetcore;authentication;security</PackageTags>
8-
<Nullable>enable</Nullable>
8+
<IsTrimmable>true</IsTrimmable>
99
</PropertyGroup>
1010

1111
<ItemGroup>

src/Security/Authentication/Google/src/Microsoft.AspNetCore.Authentication.Google.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
66
<GenerateDocumentationFile>true</GenerateDocumentationFile>
77
<PackageTags>aspnetcore;authentication;security</PackageTags>
8-
<Nullable>enable</Nullable>
8+
<IsTrimmable>true</IsTrimmable>
99
</PropertyGroup>
1010

1111
<ItemGroup>

src/Security/Authentication/JwtBearer/src/Microsoft.AspNetCore.Authentication.JwtBearer.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
66
<GenerateDocumentationFile>true</GenerateDocumentationFile>
77
<PackageTags>aspnetcore;authentication;security</PackageTags>
8-
<Nullable>enable</Nullable>
8+
<IsTrimmable>true</IsTrimmable>
99
</PropertyGroup>
1010

1111
<ItemGroup>

src/Security/Authentication/MicrosoftAccount/src/Microsoft.AspNetCore.Authentication.MicrosoftAccount.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
66
<GenerateDocumentationFile>true</GenerateDocumentationFile>
77
<PackageTags>aspnetcore;authentication;security</PackageTags>
8-
<Nullable>enable</Nullable>
8+
<IsTrimmable>true</IsTrimmable>
99
</PropertyGroup>
1010

1111
<ItemGroup>
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
// Licensed to the .NET Foundation under one or more agreements.
22
// The .NET Foundation licenses this file to you under the MIT license.
33

4+
using System.Diagnostics.CodeAnalysis;
5+
46
namespace Microsoft.AspNetCore.Authentication.Negotiate;
57

68
// For testing
79
internal interface INegotiateStateFactory
810
{
11+
[RequiresUnreferencedCode("Negotiate authentication uses types that cannot be statically analyzed.")]
912
INegotiateState CreateInstance();
1013
}

src/Security/Authentication/Negotiate/src/Internal/ReflectedNegotiateState.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
#pragma warning disable CA1810 // Initialize all static fields inline.
55

6+
using System.Diagnostics.CodeAnalysis;
67
using System.Linq;
78
using System.Net;
89
using System.Reflection;
@@ -12,6 +13,7 @@
1213

1314
namespace Microsoft.AspNetCore.Authentication.Negotiate;
1415

16+
[RequiresUnreferencedCode("Negotiate authentication uses types that cannot be statically analyzed.")]
1517
internal sealed class ReflectedNegotiateState : INegotiateState
1618
{
1719
// https://www.gnu.org/software/gss/reference/gss.pdf

src/Security/Authentication/Negotiate/src/Internal/ReflectedNegotiateStateFactory.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
// Licensed to the .NET Foundation under one or more agreements.
22
// The .NET Foundation licenses this file to you under the MIT license.
33

4+
using System.Diagnostics.CodeAnalysis;
5+
46
namespace Microsoft.AspNetCore.Authentication.Negotiate;
57

68
internal sealed class ReflectedNegotiateStateFactory : INegotiateStateFactory
79
{
10+
[RequiresUnreferencedCode("Negotiate authentication uses types that cannot be statically analyzed.")]
811
public INegotiateState CreateInstance()
912
{
1013
return new ReflectedNegotiateState();

src/Security/Authentication/Negotiate/src/Microsoft.AspNetCore.Authentication.Negotiate.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
66
<GenerateDocumentationFile>true</GenerateDocumentationFile>
77
<PackageTags>aspnetcore;authentication;security</PackageTags>
8-
<Nullable>enable</Nullable>
8+
<IsTrimmable>true</IsTrimmable>
99
</PropertyGroup>
1010

1111
<ItemGroup>

src/Security/Authentication/Negotiate/src/NegotiateExtensions.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// Licensed to the .NET Foundation under one or more agreements.
22
// The .NET Foundation licenses this file to you under the MIT license.
33

4+
using System.Diagnostics.CodeAnalysis;
45
using Microsoft.AspNetCore.Authentication;
56
using Microsoft.AspNetCore.Authentication.Negotiate;
67
using Microsoft.AspNetCore.Authentication.Negotiate.Internal;
@@ -24,6 +25,7 @@ public static class NegotiateExtensions
2425
/// </summary>
2526
/// <param name="builder">The <see cref="AuthenticationBuilder"/>.</param>
2627
/// <returns>The original builder.</returns>
28+
[RequiresUnreferencedCode("Negotiate authentication uses types that cannot be statically analyzed.")]
2729
public static AuthenticationBuilder AddNegotiate(this AuthenticationBuilder builder)
2830
=> builder.AddNegotiate(NegotiateDefaults.AuthenticationScheme, _ => { });
2931

@@ -37,6 +39,7 @@ public static AuthenticationBuilder AddNegotiate(this AuthenticationBuilder buil
3739
/// <param name="builder">The <see cref="AuthenticationBuilder"/>.</param>
3840
/// <param name="configureOptions">Allows for configuring the authentication handler.</param>
3941
/// <returns>The original builder.</returns>
42+
[RequiresUnreferencedCode("Negotiate authentication uses types that cannot be statically analyzed.")]
4043
public static AuthenticationBuilder AddNegotiate(this AuthenticationBuilder builder, Action<NegotiateOptions> configureOptions)
4144
=> builder.AddNegotiate(NegotiateDefaults.AuthenticationScheme, configureOptions);
4245

@@ -51,6 +54,7 @@ public static AuthenticationBuilder AddNegotiate(this AuthenticationBuilder buil
5154
/// <param name="authenticationScheme">The scheme name used to identify the authentication handler internally.</param>
5255
/// <param name="configureOptions">Allows for configuring the authentication handler.</param>
5356
/// <returns>The original builder.</returns>
57+
[RequiresUnreferencedCode("Negotiate authentication uses types that cannot be statically analyzed.")]
5458
public static AuthenticationBuilder AddNegotiate(this AuthenticationBuilder builder, string authenticationScheme, Action<NegotiateOptions> configureOptions)
5559
=> builder.AddNegotiate(authenticationScheme, displayName: null, configureOptions: configureOptions);
5660

@@ -66,6 +70,7 @@ public static AuthenticationBuilder AddNegotiate(this AuthenticationBuilder buil
6670
/// <param name="displayName">The name displayed to users when selecting an authentication handler. The default is null to prevent this from displaying.</param>
6771
/// <param name="configureOptions">Allows for configuring the authentication handler.</param>
6872
/// <returns>The original builder.</returns>
73+
[RequiresUnreferencedCode("Negotiate authentication uses types that cannot be statically analyzed.")]
6974
public static AuthenticationBuilder AddNegotiate(this AuthenticationBuilder builder, string authenticationScheme, string? displayName, Action<NegotiateOptions> configureOptions)
7075
{
7176
builder.Services.TryAddEnumerable(ServiceDescriptor.Singleton<IPostConfigureOptions<NegotiateOptions>, PostConfigureNegotiateOptions>());

src/Security/Authentication/Negotiate/src/NegotiateHandler.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// The .NET Foundation licenses this file to you under the MIT license.
33

44
using System.Diagnostics;
5+
using System.Diagnostics.CodeAnalysis;
56
using System.Linq;
67
using System.Security.Claims;
78
using System.Security.Principal;
@@ -18,6 +19,7 @@ namespace Microsoft.AspNetCore.Authentication.Negotiate;
1819
/// <summary>
1920
/// Authenticates requests using Negotiate, Kerberos, or NTLM.
2021
/// </summary>
22+
[RequiresUnreferencedCode("Negotiate authentication uses types that cannot be statically analyzed.")]
2123
public class NegotiateHandler : AuthenticationHandler<NegotiateOptions>, IAuthenticationRequestHandler
2224
{
2325
private const string AuthPersistenceKey = nameof(AuthPersistence);

src/Security/Authentication/OAuth/src/Microsoft.AspNetCore.Authentication.OAuth.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<GenerateDocumentationFile>true</GenerateDocumentationFile>
88
<PackageTags>aspnetcore;authentication;security</PackageTags>
99
<IsPackable>false</IsPackable>
10-
<Nullable>enable</Nullable>
10+
<IsTrimmable>true</IsTrimmable>
1111
</PropertyGroup>
1212

1313
<ItemGroup>

src/Security/Authentication/OpenIdConnect/src/Microsoft.AspNetCore.Authentication.OpenIdConnect.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
66
<GenerateDocumentationFile>true</GenerateDocumentationFile>
77
<PackageTags>aspnetcore;authentication;security</PackageTags>
8-
<Nullable>enable</Nullable>
8+
<IsTrimmable>true</IsTrimmable>
99
</PropertyGroup>
1010

1111
<ItemGroup>

src/Security/Authentication/Twitter/src/Microsoft.AspNetCore.Authentication.Twitter.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
66
<GenerateDocumentationFile>true</GenerateDocumentationFile>
77
<PackageTags>aspnetcore;authentication;security</PackageTags>
8-
<Nullable>enable</Nullable>
8+
<IsTrimmable>true</IsTrimmable>
99
</PropertyGroup>
1010

1111
<ItemGroup>

src/Security/Authentication/Twitter/src/TwitterHandler.cs

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
using System.Text;
99
using System.Text.Encodings.Web;
1010
using System.Text.Json;
11+
using System.Text.Json.Serialization;
1112
using Microsoft.AspNetCore.Http;
1213
using Microsoft.AspNetCore.WebUtilities;
1314
using Microsoft.Extensions.Logging;
@@ -19,13 +20,8 @@ namespace Microsoft.AspNetCore.Authentication.Twitter;
1920
/// <summary>
2021
/// Authentication handler for Twitter's OAuth based authentication.
2122
/// </summary>
22-
public class TwitterHandler : RemoteAuthenticationHandler<TwitterOptions>
23+
public partial class TwitterHandler : RemoteAuthenticationHandler<TwitterOptions>
2324
{
24-
private static readonly JsonSerializerOptions ErrorSerializerOptions = new JsonSerializerOptions
25-
{
26-
PropertyNameCaseInsensitive = true
27-
};
28-
2925
private HttpClient Backchannel => Options.Backchannel;
3026

3127
/// <summary>
@@ -361,7 +357,7 @@ private async Task EnsureTwitterRequestSuccess(HttpResponseMessage response)
361357
{
362358
// Failure, attempt to parse Twitters error message
363359
var errorContentStream = await response.Content.ReadAsStreamAsync(Context.RequestAborted);
364-
errorResponse = await JsonSerializer.DeserializeAsync<TwitterErrorResponse>(errorContentStream, ErrorSerializerOptions);
360+
errorResponse = await JsonSerializer.DeserializeAsync(errorContentStream, TwitterJsonContext.DefaultWithOptions.TwitterErrorResponse);
365361
}
366362
catch
367363
{
@@ -390,4 +386,13 @@ private async Task EnsureTwitterRequestSuccess(HttpResponseMessage response)
390386

391387
throw new InvalidOperationException(errorMessageStringBuilder.ToString());
392388
}
389+
390+
[JsonSerializable(typeof(TwitterErrorResponse))]
391+
internal sealed partial class TwitterJsonContext : JsonSerializerContext
392+
{
393+
public static readonly TwitterJsonContext DefaultWithOptions = new TwitterJsonContext(new JsonSerializerOptions
394+
{
395+
PropertyNameCaseInsensitive = true
396+
});
397+
}
393398
}

src/Security/Authentication/WsFederation/src/Microsoft.AspNetCore.Authentication.WsFederation.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
66
<GenerateDocumentationFile>true</GenerateDocumentationFile>
77
<PackageTags>aspnetcore;authentication;security</PackageTags>
8-
<Nullable>enable</Nullable>
8+
<IsTrimmable>true</IsTrimmable>
99
</PropertyGroup>
1010

1111
<ItemGroup>

src/Security/Authorization/Policy/src/Microsoft.AspNetCore.Authorization.Policy.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<GenerateDocumentationFile>true</GenerateDocumentationFile>
88
<PackageTags>aspnetcore;authorization</PackageTags>
99
<IsPackable>false</IsPackable>
10-
<Nullable>enable</Nullable>
10+
<IsTrimmable>true</IsTrimmable>
1111
</PropertyGroup>
1212

1313
<ItemGroup>

src/Security/CookiePolicy/src/Microsoft.AspNetCore.CookiePolicy.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<GenerateDocumentationFile>true</GenerateDocumentationFile>
88
<PackageTags>aspnetcore</PackageTags>
99
<IsPackable>false</IsPackable>
10-
<Nullable>enable</Nullable>
10+
<IsTrimmable>true</IsTrimmable>
1111
</PropertyGroup>
1212

1313
<ItemGroup>

src/Tools/Tools.slnf

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,21 @@
6363
"src\\Middleware\\StaticFiles\\src\\Microsoft.AspNetCore.StaticFiles.csproj",
6464
"src\\Middleware\\WebSockets\\src\\Microsoft.AspNetCore.WebSockets.csproj",
6565
"src\\ObjectPool\\src\\Microsoft.Extensions.ObjectPool.csproj",
66+
"src\\Security\\Authentication\\Certificate\\src\\Microsoft.AspNetCore.Authentication.Certificate.csproj",
67+
"src\\Security\\Authentication\\Cookies\\src\\Microsoft.AspNetCore.Authentication.Cookies.csproj",
68+
"src\\Security\\Authentication\\Core\\src\\Microsoft.AspNetCore.Authentication.csproj",
69+
"src\\Security\\Authentication\\Facebook\\src\\Microsoft.AspNetCore.Authentication.Facebook.csproj",
70+
"src\\Security\\Authentication\\Google\\src\\Microsoft.AspNetCore.Authentication.Google.csproj",
71+
"src\\Security\\Authentication\\JwtBearer\\src\\Microsoft.AspNetCore.Authentication.JwtBearer.csproj",
72+
"src\\Security\\Authentication\\MicrosoftAccount\\src\\Microsoft.AspNetCore.Authentication.MicrosoftAccount.csproj",
73+
"src\\Security\\Authentication\\Negotiate\\src\\Microsoft.AspNetCore.Authentication.Negotiate.csproj",
74+
"src\\Security\\Authentication\\OAuth\\src\\Microsoft.AspNetCore.Authentication.OAuth.csproj",
75+
"src\\Security\\Authentication\\OpenIdConnect\\src\\Microsoft.AspNetCore.Authentication.OpenIdConnect.csproj",
76+
"src\\Security\\Authentication\\Twitter\\src\\Microsoft.AspNetCore.Authentication.Twitter.csproj",
77+
"src\\Security\\Authentication\\WsFederation\\src\\Microsoft.AspNetCore.Authentication.WsFederation.csproj",
6678
"src\\Security\\Authorization\\Core\\src\\Microsoft.AspNetCore.Authorization.csproj",
79+
"src\\Security\\Authorization\\Policy\\src\\Microsoft.AspNetCore.Authorization.Policy.csproj",
80+
"src\\Security\\CookiePolicy\\src\\Microsoft.AspNetCore.CookiePolicy.csproj",
6781
"src\\Servers\\Connections.Abstractions\\src\\Microsoft.AspNetCore.Connections.Abstractions.csproj",
6882
"src\\Servers\\HttpSys\\src\\Microsoft.AspNetCore.Server.HttpSys.csproj",
6983
"src\\Servers\\IIS\\IISIntegration\\src\\Microsoft.AspNetCore.Server.IISIntegration.csproj",

0 commit comments

Comments
 (0)