在ASP.NET 5中获取AuthenticationProperties

时间:2015-12-30 18:16:14

标签: asp.net asp.net-core asp.net-core-mvc

在ASP.NET 5 MVC 6 RC1中,如何从控制器或过滤器中检索AuthenticationPropertiesHttpContext.Authentication似乎没有此功能。

我考虑过注册一个CookieAuthenticationEvents.OnValidatePrincipal处理程序,然后在Properties参数上使用CookieValidatePrincipalContext属性。然后我可以将这些AuthenticationProperties存储在请求缓存中,以便稍后我可以获得IssuedUtc之类的内容。

有没有更好的解决方案,我不需要自己存储?

我没有使用ASP.NET身份,而是将cookie中间件作为独立使用。

1 个答案:

答案 0 :(得分:8)

在ASP.NET 5中,检索身份验证属性有点麻烦,因为必须通过实例化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);