在ASP.NET 5 MVC 6 RC1中,如何从控制器或过滤器中检索AuthenticationProperties
? HttpContext.Authentication
似乎没有此功能。
我考虑过注册一个CookieAuthenticationEvents.OnValidatePrincipal
处理程序,然后在Properties
参数上使用CookieValidatePrincipalContext
属性。然后我可以将这些AuthenticationProperties
存储在请求缓存中,以便稍后我可以获得IssuedUtc
之类的内容。
有没有更好的解决方案,我不需要自己存储?
我没有使用ASP.NET身份,而是将cookie中间件作为独立使用。
答案 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);