From 5c4f2c330bf6f6d976f4e806f004ba1552dbe118 Mon Sep 17 00:00:00 2001 From: Hao Kung Date: Fri, 31 Mar 2017 12:01:17 -0700 Subject: [PATCH] Obsolete Auth 1.0 --- .../Authentication/AuthenticateInfo.cs | 4 ++++ .../AuthenticationDescription.cs | 1 + .../Authentication/AuthenticationManager.cs | 20 +++++++++++++++++++ .../AuthenticationProperties.cs | 7 +++++++ .../HttpContext.cs | 1 + .../Authentication/AuthenticateContext.cs | 1 + .../Authentication/ChallengeBehavior.cs | 3 +++ .../Authentication/ChallengeContext.cs | 1 + .../Authentication/DescribeSchemesContext.cs | 2 ++ .../Authentication/IAuthenticationHandler.cs | 7 +++++++ .../IHttpAuthenticationFeature.cs | 2 ++ .../Authentication/SignInContext.cs | 1 + .../Authentication/SignOutContext.cs | 1 + .../DefaultAuthenticationManager.cs | 8 ++++++++ .../DefaultHttpContext.cs | 7 +++++++ .../HttpAuthenticationFeature.cs | 2 ++ .../OwinFeatureCollection.cs | 1 + 17 files changed, 69 insertions(+) diff --git a/src/Microsoft.AspNetCore.Http.Abstractions/Authentication/AuthenticateInfo.cs b/src/Microsoft.AspNetCore.Http.Abstractions/Authentication/AuthenticateInfo.cs index 9e8e3fd5..3c893dbb 100644 --- a/src/Microsoft.AspNetCore.Http.Abstractions/Authentication/AuthenticateInfo.cs +++ b/src/Microsoft.AspNetCore.Http.Abstractions/Authentication/AuthenticateInfo.cs @@ -9,21 +9,25 @@ namespace Microsoft.AspNetCore.Http.Authentication /// /// Used to store the results of an Authenticate call. /// + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public class AuthenticateInfo { /// /// The . /// + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public ClaimsPrincipal Principal { get; set; } /// /// The . /// + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public AuthenticationProperties Properties { get; set; } /// /// The . /// + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public AuthenticationDescription Description { get; set; } } } diff --git a/src/Microsoft.AspNetCore.Http.Abstractions/Authentication/AuthenticationDescription.cs b/src/Microsoft.AspNetCore.Http.Abstractions/Authentication/AuthenticationDescription.cs index fb0a073f..fb2d00c8 100644 --- a/src/Microsoft.AspNetCore.Http.Abstractions/Authentication/AuthenticationDescription.cs +++ b/src/Microsoft.AspNetCore.Http.Abstractions/Authentication/AuthenticationDescription.cs @@ -10,6 +10,7 @@ namespace Microsoft.AspNetCore.Http.Authentication /// /// Contains information describing an authentication provider. /// + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public class AuthenticationDescription { private const string DisplayNamePropertyKey = "DisplayName"; diff --git a/src/Microsoft.AspNetCore.Http.Abstractions/Authentication/AuthenticationManager.cs b/src/Microsoft.AspNetCore.Http.Abstractions/Authentication/AuthenticationManager.cs index 56d9dbad..164618dc 100644 --- a/src/Microsoft.AspNetCore.Http.Abstractions/Authentication/AuthenticationManager.cs +++ b/src/Microsoft.AspNetCore.Http.Abstractions/Authentication/AuthenticationManager.cs @@ -9,37 +9,47 @@ namespace Microsoft.AspNetCore.Http.Authentication { + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public abstract class AuthenticationManager { /// /// Constant used to represent the automatic scheme /// + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public const string AutomaticScheme = "Automatic"; + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public abstract HttpContext HttpContext { get; } + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public abstract IEnumerable GetAuthenticationSchemes(); + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public abstract Task GetAuthenticateInfoAsync(string authenticationScheme); // Will remove once callees have been updated + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public abstract Task AuthenticateAsync(AuthenticateContext context); + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public virtual async Task AuthenticateAsync(string authenticationScheme) { return (await GetAuthenticateInfoAsync(authenticationScheme))?.Principal; } + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public virtual Task ChallengeAsync() { return ChallengeAsync(properties: null); } + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public virtual Task ChallengeAsync(AuthenticationProperties properties) { return ChallengeAsync(authenticationScheme: AutomaticScheme, properties: properties); } + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public virtual Task ChallengeAsync(string authenticationScheme) { if (string.IsNullOrEmpty(authenticationScheme)) @@ -51,6 +61,7 @@ public virtual Task ChallengeAsync(string authenticationScheme) } // Leave it up to authentication handler to do the right thing for the challenge + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public virtual Task ChallengeAsync(string authenticationScheme, AuthenticationProperties properties) { if (string.IsNullOrEmpty(authenticationScheme)) @@ -61,6 +72,7 @@ public virtual Task ChallengeAsync(string authenticationScheme, AuthenticationPr return ChallengeAsync(authenticationScheme, properties, ChallengeBehavior.Automatic); } + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public virtual Task SignInAsync(string authenticationScheme, ClaimsPrincipal principal) { if (string.IsNullOrEmpty(authenticationScheme)) @@ -80,9 +92,11 @@ public virtual Task SignInAsync(string authenticationScheme, ClaimsPrincipal pri /// Creates a challenge for the authentication manager with . /// /// A that represents the asynchronous challenge operation. + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public virtual Task ForbidAsync() => ForbidAsync(AutomaticScheme, properties: null); + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public virtual Task ForbidAsync(string authenticationScheme) { if (authenticationScheme == null) @@ -94,6 +108,7 @@ public virtual Task ForbidAsync(string authenticationScheme) } // Deny access (typically a 403) + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public virtual Task ForbidAsync(string authenticationScheme, AuthenticationProperties properties) { if (authenticationScheme == null) @@ -109,13 +124,17 @@ public virtual Task ForbidAsync(string authenticationScheme, AuthenticationPrope /// /// Additional arbitrary values which may be used by particular authentication types. /// A that represents the asynchronous challenge operation. + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public virtual Task ForbidAsync(AuthenticationProperties properties) => ForbidAsync(AutomaticScheme, properties); + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public abstract Task ChallengeAsync(string authenticationScheme, AuthenticationProperties properties, ChallengeBehavior behavior); + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public abstract Task SignInAsync(string authenticationScheme, ClaimsPrincipal principal, AuthenticationProperties properties); + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public virtual Task SignOutAsync(string authenticationScheme) { if (authenticationScheme == null) @@ -126,6 +145,7 @@ public virtual Task SignOutAsync(string authenticationScheme) return SignOutAsync(authenticationScheme, properties: null); } + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public abstract Task SignOutAsync(string authenticationScheme, AuthenticationProperties properties); } } diff --git a/src/Microsoft.AspNetCore.Http.Abstractions/Authentication/AuthenticationProperties.cs b/src/Microsoft.AspNetCore.Http.Abstractions/Authentication/AuthenticationProperties.cs index 6e883efb..a01c5d4c 100644 --- a/src/Microsoft.AspNetCore.Http.Abstractions/Authentication/AuthenticationProperties.cs +++ b/src/Microsoft.AspNetCore.Http.Abstractions/Authentication/AuthenticationProperties.cs @@ -10,6 +10,7 @@ namespace Microsoft.AspNetCore.Http.Authentication /// /// Dictionary used to store state values about the authentication session. /// + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public class AuthenticationProperties { internal const string IssuedUtcKey = ".issued"; @@ -39,11 +40,13 @@ public AuthenticationProperties(IDictionary items) /// /// State values about the authentication session. /// + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public IDictionary Items { get; } /// /// Gets or sets whether the authentication session is persisted across multiple requests. /// + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public bool IsPersistent { get { return Items.ContainsKey(IsPersistentKey); } @@ -69,6 +72,7 @@ public bool IsPersistent /// /// Gets or sets the full path or absolute URI to be used as an http redirect response value. /// + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public string RedirectUri { get @@ -95,6 +99,7 @@ public string RedirectUri /// /// Gets or sets the time at which the authentication ticket was issued. /// + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public DateTimeOffset? IssuedUtc { get @@ -129,6 +134,7 @@ public DateTimeOffset? IssuedUtc /// /// Gets or sets the time at which the authentication ticket expires. /// + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public DateTimeOffset? ExpiresUtc { get @@ -163,6 +169,7 @@ public DateTimeOffset? ExpiresUtc /// /// Gets or sets if refreshing the authentication session should be allowed. /// + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public bool? AllowRefresh { get diff --git a/src/Microsoft.AspNetCore.Http.Abstractions/HttpContext.cs b/src/Microsoft.AspNetCore.Http.Abstractions/HttpContext.cs index 7f72dcd8..6b38ae43 100644 --- a/src/Microsoft.AspNetCore.Http.Abstractions/HttpContext.cs +++ b/src/Microsoft.AspNetCore.Http.Abstractions/HttpContext.cs @@ -43,6 +43,7 @@ public abstract class HttpContext /// /// Gets an object that facilitates authentication for this request. /// + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public abstract AuthenticationManager Authentication { get; } /// diff --git a/src/Microsoft.AspNetCore.Http.Features/Authentication/AuthenticateContext.cs b/src/Microsoft.AspNetCore.Http.Features/Authentication/AuthenticateContext.cs index e7306166..67e89f18 100644 --- a/src/Microsoft.AspNetCore.Http.Features/Authentication/AuthenticateContext.cs +++ b/src/Microsoft.AspNetCore.Http.Features/Authentication/AuthenticateContext.cs @@ -7,6 +7,7 @@ namespace Microsoft.AspNetCore.Http.Features.Authentication { + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public class AuthenticateContext { public AuthenticateContext(string authenticationScheme) diff --git a/src/Microsoft.AspNetCore.Http.Features/Authentication/ChallengeBehavior.cs b/src/Microsoft.AspNetCore.Http.Features/Authentication/ChallengeBehavior.cs index 549d5113..9fdceb0a 100644 --- a/src/Microsoft.AspNetCore.Http.Features/Authentication/ChallengeBehavior.cs +++ b/src/Microsoft.AspNetCore.Http.Features/Authentication/ChallengeBehavior.cs @@ -1,8 +1,11 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +using System; + namespace Microsoft.AspNetCore.Http.Features.Authentication { + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public enum ChallengeBehavior { Automatic, diff --git a/src/Microsoft.AspNetCore.Http.Features/Authentication/ChallengeContext.cs b/src/Microsoft.AspNetCore.Http.Features/Authentication/ChallengeContext.cs index c0fe4708..d8e04c14 100644 --- a/src/Microsoft.AspNetCore.Http.Features/Authentication/ChallengeContext.cs +++ b/src/Microsoft.AspNetCore.Http.Features/Authentication/ChallengeContext.cs @@ -6,6 +6,7 @@ namespace Microsoft.AspNetCore.Http.Features.Authentication { + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public class ChallengeContext { public ChallengeContext(string authenticationScheme) diff --git a/src/Microsoft.AspNetCore.Http.Features/Authentication/DescribeSchemesContext.cs b/src/Microsoft.AspNetCore.Http.Features/Authentication/DescribeSchemesContext.cs index b25c2c97..e86f8475 100644 --- a/src/Microsoft.AspNetCore.Http.Features/Authentication/DescribeSchemesContext.cs +++ b/src/Microsoft.AspNetCore.Http.Features/Authentication/DescribeSchemesContext.cs @@ -1,10 +1,12 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +using System; using System.Collections.Generic; namespace Microsoft.AspNetCore.Http.Features.Authentication { + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public class DescribeSchemesContext { private List> _results; diff --git a/src/Microsoft.AspNetCore.Http.Features/Authentication/IAuthenticationHandler.cs b/src/Microsoft.AspNetCore.Http.Features/Authentication/IAuthenticationHandler.cs index 3b723641..7d5b9c01 100644 --- a/src/Microsoft.AspNetCore.Http.Features/Authentication/IAuthenticationHandler.cs +++ b/src/Microsoft.AspNetCore.Http.Features/Authentication/IAuthenticationHandler.cs @@ -1,20 +1,27 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +using System; using System.Threading.Tasks; namespace Microsoft.AspNetCore.Http.Features.Authentication { + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public interface IAuthenticationHandler { + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] void GetDescriptions(DescribeSchemesContext context); + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] Task AuthenticateAsync(AuthenticateContext context); + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] Task ChallengeAsync(ChallengeContext context); + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] Task SignInAsync(SignInContext context); + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] Task SignOutAsync(SignOutContext context); } } diff --git a/src/Microsoft.AspNetCore.Http.Features/Authentication/IHttpAuthenticationFeature.cs b/src/Microsoft.AspNetCore.Http.Features/Authentication/IHttpAuthenticationFeature.cs index 080ce405..b018e51a 100644 --- a/src/Microsoft.AspNetCore.Http.Features/Authentication/IHttpAuthenticationFeature.cs +++ b/src/Microsoft.AspNetCore.Http.Features/Authentication/IHttpAuthenticationFeature.cs @@ -1,6 +1,7 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +using System; using System.Security.Claims; namespace Microsoft.AspNetCore.Http.Features.Authentication @@ -9,6 +10,7 @@ public interface IHttpAuthenticationFeature { ClaimsPrincipal User { get; set; } + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] IAuthenticationHandler Handler { get; set; } } } \ No newline at end of file diff --git a/src/Microsoft.AspNetCore.Http.Features/Authentication/SignInContext.cs b/src/Microsoft.AspNetCore.Http.Features/Authentication/SignInContext.cs index f04dade5..982f4400 100644 --- a/src/Microsoft.AspNetCore.Http.Features/Authentication/SignInContext.cs +++ b/src/Microsoft.AspNetCore.Http.Features/Authentication/SignInContext.cs @@ -7,6 +7,7 @@ namespace Microsoft.AspNetCore.Http.Features.Authentication { + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public class SignInContext { public SignInContext(string authenticationScheme, ClaimsPrincipal principal, IDictionary properties) diff --git a/src/Microsoft.AspNetCore.Http.Features/Authentication/SignOutContext.cs b/src/Microsoft.AspNetCore.Http.Features/Authentication/SignOutContext.cs index c752f057..e99773e9 100644 --- a/src/Microsoft.AspNetCore.Http.Features/Authentication/SignOutContext.cs +++ b/src/Microsoft.AspNetCore.Http.Features/Authentication/SignOutContext.cs @@ -6,6 +6,7 @@ namespace Microsoft.AspNetCore.Http.Features.Authentication { + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public class SignOutContext { public SignOutContext(string authenticationScheme, IDictionary properties) diff --git a/src/Microsoft.AspNetCore.Http/Authentication/DefaultAuthenticationManager.cs b/src/Microsoft.AspNetCore.Http/Authentication/DefaultAuthenticationManager.cs index 666e2179..028555f4 100644 --- a/src/Microsoft.AspNetCore.Http/Authentication/DefaultAuthenticationManager.cs +++ b/src/Microsoft.AspNetCore.Http/Authentication/DefaultAuthenticationManager.cs @@ -11,6 +11,7 @@ namespace Microsoft.AspNetCore.Http.Authentication.Internal { + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public class DefaultAuthenticationManager : AuthenticationManager { // Lambda hoisted to static readonly field to improve inlining https://github.com/dotnet/roslyn/issues/13624 @@ -35,11 +36,13 @@ public virtual void Uninitialize() _features = default(FeatureReferences); } + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public override HttpContext HttpContext => _context; private IHttpAuthenticationFeature HttpAuthenticationFeature => _features.Fetch(ref _features.Cache, _newAuthenticationFeature); + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public override IEnumerable GetAuthenticationSchemes() { var handler = HttpAuthenticationFeature.Handler; @@ -54,6 +57,7 @@ public override IEnumerable GetAuthenticationSchemes( } // Remove once callers have been switched to GetAuthenticateInfoAsync + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public override async Task AuthenticateAsync(AuthenticateContext context) { if (context == null) @@ -73,6 +77,7 @@ public override async Task AuthenticateAsync(AuthenticateContext context) } } + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public override async Task GetAuthenticateInfoAsync(string authenticationScheme) { if (authenticationScheme == null) @@ -100,6 +105,7 @@ public override async Task GetAuthenticateInfoAsync(string aut }; } + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public override async Task ChallengeAsync(string authenticationScheme, AuthenticationProperties properties, ChallengeBehavior behavior) { if (string.IsNullOrEmpty(authenticationScheme)) @@ -121,6 +127,7 @@ public override async Task ChallengeAsync(string authenticationScheme, Authentic } } + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public override async Task SignInAsync(string authenticationScheme, ClaimsPrincipal principal, AuthenticationProperties properties) { if (string.IsNullOrEmpty(authenticationScheme)) @@ -147,6 +154,7 @@ public override async Task SignInAsync(string authenticationScheme, ClaimsPrinci } } + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public override async Task SignOutAsync(string authenticationScheme, AuthenticationProperties properties) { if (string.IsNullOrEmpty(authenticationScheme)) diff --git a/src/Microsoft.AspNetCore.Http/DefaultHttpContext.cs b/src/Microsoft.AspNetCore.Http/DefaultHttpContext.cs index d1e431c7..883cc33e 100644 --- a/src/Microsoft.AspNetCore.Http/DefaultHttpContext.cs +++ b/src/Microsoft.AspNetCore.Http/DefaultHttpContext.cs @@ -28,7 +28,9 @@ public class DefaultHttpContext : HttpContext private HttpRequest _request; private HttpResponse _response; +#pragma warning disable 618 private AuthenticationManager _authenticationManager; +#pragma warning restore 618 private ConnectionInfo _connection; private WebSocketManager _websockets; @@ -66,7 +68,9 @@ public virtual void Uninitialize() } if (_authenticationManager != null) { +#pragma warning disable 618 UninitializeAuthenticationManager(_authenticationManager); +#pragma warning restore 618 _authenticationManager = null; } if (_connection != null) @@ -111,6 +115,7 @@ public virtual void Uninitialize() public override ConnectionInfo Connection => _connection ?? (_connection = InitializeConnectionInfo()); + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public override AuthenticationManager Authentication => _authenticationManager ?? (_authenticationManager = InitializeAuthenticationManager()); public override WebSocketManager WebSockets => _websockets ?? (_websockets = InitializeWebSocketManager()); @@ -190,7 +195,9 @@ protected virtual void UninitializeHttpResponse(HttpResponse instance) { } protected virtual ConnectionInfo InitializeConnectionInfo() => new DefaultConnectionInfo(Features); protected virtual void UninitializeConnectionInfo(ConnectionInfo instance) { } + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] protected virtual AuthenticationManager InitializeAuthenticationManager() => new DefaultAuthenticationManager(this); + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] protected virtual void UninitializeAuthenticationManager(AuthenticationManager instance) { } protected virtual WebSocketManager InitializeWebSocketManager() => new DefaultWebSocketManager(Features); diff --git a/src/Microsoft.AspNetCore.Http/Features/Authentication/HttpAuthenticationFeature.cs b/src/Microsoft.AspNetCore.Http/Features/Authentication/HttpAuthenticationFeature.cs index 9a14b657..89f06e3b 100644 --- a/src/Microsoft.AspNetCore.Http/Features/Authentication/HttpAuthenticationFeature.cs +++ b/src/Microsoft.AspNetCore.Http/Features/Authentication/HttpAuthenticationFeature.cs @@ -1,6 +1,7 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +using System; using System.Security.Claims; namespace Microsoft.AspNetCore.Http.Features.Authentication @@ -13,6 +14,7 @@ public ClaimsPrincipal User set; } + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] public IAuthenticationHandler Handler { get; diff --git a/src/Microsoft.AspNetCore.Owin/OwinFeatureCollection.cs b/src/Microsoft.AspNetCore.Owin/OwinFeatureCollection.cs index 4838b99f..4a71310c 100644 --- a/src/Microsoft.AspNetCore.Owin/OwinFeatureCollection.cs +++ b/src/Microsoft.AspNetCore.Owin/OwinFeatureCollection.cs @@ -279,6 +279,7 @@ ClaimsPrincipal IHttpAuthenticationFeature.User } } + [Obsolete("See https://go.microsoft.com/fwlink/?linkid=845470")] IAuthenticationHandler IHttpAuthenticationFeature.Handler { get; set; } ///