HttpContext.User.Identities具有相同的Identity两次

时间:2017-05-03 12:28:20

标签: asp.net-mvc identityserver3

我已将.NET MVC应用程序配置为针对单独运行的Identity Server(IdentityServer3)进行身份验证。我已配置OpenIdConnectAuthenticationNotifications.SecurityTokenValidate()以将用户的声明放入AuthenticationTicket。一切似乎都按预期工作。我第一次访问MVC应用程序中的页面时,我获得了登录屏幕,登录后我被重定向到所请求的页面。

但是,当我查看HttpContext.User(在我的覆盖CheckAccessAsync()中使用断点)时,它有2个身份。仔细观察我可以看到两个身份都是相同的,并且访问Claims属性会返回所有声明两次。

任何想法我可能做错了什么?

1 个答案:

答案 0 :(得分:0)

我相信我已经弄清楚了这个问题是什么。我已经将身份验证服务器和MVC应用程序配置为使用相同的客户端,这实际上导致了其他问题。

当我将身份验证服务器更改为使用自己的客户端时,MVC应用程序中的HttpContext.User仍然具有2个身份,但声明集合不会重复。我猜测Claims集合只包含正在访问集合的客户端的声明。但我完全相信,因为两个客户都返回相同的索赔集合。