如何将IdentityServer,MVC客户端和WebAPI的oidc结合起来进行集成测试

时间:2019-01-09 03:25:06

标签: asp.net architecture identityserver4 oidc integration-testing

现在我有一个项目要开发 因此,我为我的项目(现在有3个项目)模拟eshopOnContainer的结构: 用于工作项目资源的Asp.net核心Webapi项目 ASP.NET MVC项目供客户使用 身份服务器4项目使用具有oidc功能的asp.net身份来保护webapi项目。

完成所有配置,并在调试和发布模式下正常运行。 基于此,我开始集成测试项目。 问题显示在oidc场景中:

  1. MVC客户端有一个操作,例如映射java code convention,该操作具有[authorize]属性。当取消登录该链接的用户时,它将重定向用户到idserver登录页面进行登录。
  2. IdServer完成登录操作后。它将用户重定向到MVC客户端的http://localhost:10001/home/Test,并且可以很好地检索这些资源。

以上场景我尝试在集成测试环境中进行操作,但是使用WebApplicationFactory.CreateClient()的httpclient很难检索2个微服务(一个是mvcclient,一个是idserver),因为测试环境刚刚运行在内存中,我不知道配置httpclient有能力访问2个微服务(1个客户端访问2个testserver)。

我想知道我的直接输入是否正确。 还是可以给我一些建议,让我在tirp周围进行集成测试来模拟用户的操作? 最后,为什么要这样做,因为我已经在oidc中使用asp.net身份(基于角色)进行了授权,所以如果我使用clientid和clientsecure来获取访问令牌,那么它就没有访问权限受角色保护的受保护的api。 结果是对这些问题的挑战。

0 个答案:

没有答案