2017-05-03 158 views
0

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

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

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

回答

0

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

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

相关问题