【发布时间】:2018-03-21 07:50:23
【问题描述】:
当我在
上的控制器中添加对身份的声明时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);
}
}
我错过了什么?
【问题讨论】:
-
您的身份验证是否基于授权令牌?您是否在添加声明后更新令牌?
-
向身份添加声明应该在登录之前
-
@WaelAbbas 有效的声明是在登录之前添加的,所以这可能是我犯的错误。
标签: c# asp.net-mvc asp.net-core claims-based-identity actionfilterattribute