In ASP.NET 5 MVC 6 RC1 how do I retrieve AuthenticationProperties
from within a controller or from a filter? HttpContext.Authentication
does't seem to have this functionality.
I thought about registering an CookieAuthenticationEvents.OnValidatePrincipal
handler and then using the Properties
property on the CookieValidatePrincipalContext
argument. Then I could store those AuthenticationProperties
in the request cache so that later I'm able to get things like IssuedUtc
.
Is there a better solution where I don't need to store this myself?
I'm not using ASP.NET Identity but the cookie middleware as standalone.
In ASP.NET 5, retrieving the authentication properties is a bit cumbersome as it must be done by instantiating an AuthenticateContext
:
var context = new AuthenticateContext("[your authentication scheme]");
await HttpContext.Authentication.AuthenticateAsync(context);
if (context.Principal == null || context.Properties == null) {
throw new InvalidOperationException("The request is not authenticated.");
}
var properties = new AuthenticationProperties(context.Properties);
AuthenticationProperties
can be accessed via IAuthenticateResultFeature
. It's set in AuthN and AuthZ middleware.
HttpContext.Features.Get<IAuthenticateResultFeature>().AuthenticateResult.Properties
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With