简体   繁体   中英

Get AuthenticationProperties in ASP.NET 5

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM