diff --git a/src/Microsoft.AspNetCore.Authentication.Abstractions/AuthenticateResult.cs b/src/Microsoft.AspNetCore.Authentication.Abstractions/AuthenticateResult.cs index 1da6a0b9..5982143b 100644 --- a/src/Microsoft.AspNetCore.Authentication.Abstractions/AuthenticateResult.cs +++ b/src/Microsoft.AspNetCore.Authentication.Abstractions/AuthenticateResult.cs @@ -31,7 +31,7 @@ protected AuthenticateResult() { } /// /// Additional state values for the authentication session. /// - public AuthenticationProperties Properties => Ticket?.Properties; + public AuthenticationProperties Properties { get; protected set; } /// /// Holds failure information from the authentication. @@ -54,7 +54,7 @@ public static AuthenticateResult Success(AuthenticationTicket ticket) { throw new ArgumentNullException(nameof(ticket)); } - return new AuthenticateResult() { Ticket = ticket }; + return new AuthenticateResult() { Ticket = ticket, Properties = ticket.Properties }; } /// @@ -79,11 +79,29 @@ public static AuthenticateResult Fail(Exception failure) /// /// Indicates that there was a failure during authentication. /// - /// The failure message. + /// The failure exception. + /// Additional state values for the authentication session. /// The result. - public static AuthenticateResult Fail(string failureMessage) + public static AuthenticateResult Fail(Exception failure, AuthenticationProperties properties) { - return new AuthenticateResult() { Failure = new Exception(failureMessage) }; + return new AuthenticateResult() { Failure = failure, Properties = properties }; } + + /// + /// Indicates that there was a failure during authentication. + /// + /// The failure message. + /// The result. + public static AuthenticateResult Fail(string failureMessage) + => Fail(new Exception(failureMessage)); + + /// + /// Indicates that there was a failure during authentication. + /// + /// The failure message. + /// Additional state values for the authentication session. + /// The result. + public static AuthenticateResult Fail(string failureMessage, AuthenticationProperties properties) + => Fail(new Exception(failureMessage), properties); } }