当我在控制器上添加对身份的声明时
HttpContext.User.Identities.First(
i => i.AuthenticationType == IdentityConstants.ApplicationScheme)
与
Addclaim(new Claim(type, value))
并尝试从下一个请求的自定义actionfilterattribute中的ActionExecutingContext中检索该声明,为什么它不存在?我正在使用以下代码访问声明:
[AttributeUsage(AttributeTargets.Method)]
public class ClaimActionFilter : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext context)
{
var claims = context.HttpContext.User.Claims;
base.OnActionExecuting(context);
}
}
我错过了什么?
答案 0 :(得分:1)
确保在登录前向Identity添加声明。
答案 1 :(得分:0)
声明通过身份验证Cookie保留,因此只有在登录时才会“刷新”。如果您添加或更新声明,则需要在之后将用户注销。然后,您可以选择自动重新签名或强制他们手动重新进行身份验证。