没有从 HttpContext.Current.GetOwinContext().Authentication 获得额外的声明

Not getting additional claims from HttpContext.Current.GetOwinContext().Authentication

我有一个使用 Owin 和 Identity Server 4 进行身份验证的 .net 表单客户端,但我没有从 HttpContext.Current.GetOwinContext().Authentication.User。我做错了什么?

我在我的 IDS4 上的 accountController 中添加额外声明,如下所示:

await HttpContext.Authentication.SignInAsync(user.SubjectId, user.Username, props, additionalClaims.ToArray());

关于我的客户:

if (!Request.IsAuthenticated)
            {               

                HttpContext.Current.GetOwinContext().Authentication.Challenge(
                    new AuthenticationProperties
                    {
                        RedirectUri = "/Default1.aspx",

                    },                 
                    OpenIdConnectAuthenticationDefaults.AuthenticationType);

            }
            else
            {         
                foreach (var claim in HttpContext.Current.GetOwinContext().Authentication.User.Claims)

您是否收到索赔 属性 中的索赔:

var claimsIdentity = HttpContext.Current.User.Identity as ClaimsIdentity;

这就是我将它与 Owin 和 cookie 身份验证一起使用的方式,它完美无缺