1.0IAuthenticationHandler



IAuthenticationHandler
IAuthenticationRequestHandler : IAuthenticationHandler
IAuthenticationSignOutHandler : IAuthenticationHandler
IAuthenticationSignInHandler : IAuthenticationSignOutHandler


using
System.Threading.Tasks; using Microsoft.AspNetCore.Http; namespace Microsoft.AspNetCore.Authentication { /// <summary> /// Created per request to handle authentication for a particular scheme. /// </summary> public interface IAuthenticationHandler { /// <summary> /// Initialize the authentication handler. The handler should initialize anything it needs from the request and scheme as part of this method. /// </summary> /// <param name="scheme">The <see cref="AuthenticationScheme"/> scheme.</param> /// <param name="context">The <see cref="HttpContext"/> context.</param> Task InitializeAsync(AuthenticationScheme scheme, HttpContext context); /// <summary> /// Authenticate the current request. /// </summary> /// <returns>The <see cref="AuthenticateResult"/> result.</returns> Task<AuthenticateResult> AuthenticateAsync(); /// <summary> /// Challenge the current request. /// </summary> /// <param name="properties">The <see cref="AuthenticationProperties"/> that contains the extra meta-data arriving with the authentication.</param> Task ChallengeAsync(AuthenticationProperties? properties); /// <summary> /// Forbid the current request. /// </summary> /// <param name="properties">The <see cref="AuthenticationProperties"/> that contains the extra meta-data arriving with the authentication.</param> Task ForbidAsync(AuthenticationProperties? properties); } }
using System.Threading.Tasks;

namespace Microsoft.AspNetCore.Authentication
{
    /// <summary>
    /// Used to determine if a handler wants to participate in request processing.
    /// </summary>
    public interface IAuthenticationRequestHandler : IAuthenticationHandler
    {
        /// <summary>
        /// Gets a value that determines if the request should stop being processed.
        /// <para>
        /// This feature is supported by the Authentication middleware
        /// which does not invoke any subsequent <see cref="IAuthenticationHandler"/> or middleware configured in the request pipeline
        /// if the handler returns <see langword="true" />.
        /// </para>
        /// </summary>
        /// <returns><see langword="true" /> if request processing should stop.</returns>
        Task<bool> HandleRequestAsync();
    }

}
using System.Threading.Tasks;

namespace Microsoft.AspNetCore.Authentication
{
    /// <summary>
    /// Used to determine if a handler supports SignOut.
    /// </summary>
    public interface IAuthenticationSignOutHandler : IAuthenticationHandler
    {
        /// <summary>
        /// Signout behavior.
        /// </summary>
        /// <param name="properties">The <see cref="AuthenticationProperties"/> that contains the extra meta-data arriving with the authentication.</param>
        /// <returns>A task.</returns>
        Task SignOutAsync(AuthenticationProperties? properties);
    }

}
using System.Security.Claims;
using System.Threading.Tasks;

namespace Microsoft.AspNetCore.Authentication
{
    /// <summary>
    /// Used to determine if a handler supports SignIn.
    /// </summary>
    public interface IAuthenticationSignInHandler : IAuthenticationSignOutHandler
    {
        /// <summary>
        /// Handle sign in.
        /// </summary>
        /// <param name="user">The <see cref="ClaimsPrincipal"/> user.</param>
        /// <param name="properties">The <see cref="AuthenticationProperties"/> that contains the extra meta-data arriving with the authentication.</param>
        /// <returns>A task.</returns>
        Task SignInAsync(ClaimsPrincipal user, AuthenticationProperties? properties);
    }
}
原文地址:https://www.cnblogs.com/htlp/p/15255704.html