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); } }