没有从HttpContext.Current.GetOwinContext()获得额外的声明。身份验证

时间:2017-05-23 14:11:24

标签: c# owin openid-connect identityserver4 claims

我有一个使用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)

1 个答案:

答案 0 :(得分:1)

您是否接受了索赔财产中的索赔:

byte                0
short               0
int                 0
long                0L
float               0.0f
double              0.0d
char               '\u0000'
boolean             false

这是我使用Owin和cookie身份验证的方式,它可以完美地运行