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