首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用TestServer托管操作系统

用TestServer托管操作系统
EN

Stack Overflow用户
提问于 2017-03-21 15:36:15
回答 1查看 854关注 0票数 4

我有一个基于OpenIdDictAspNet.Security.OpenIdConnect.Server身份验证服务器。设置按预期工作。

现在,为了进行一些流程集成;系统测试横跨整个后端体系结构,我使用了TestServer类。

为什么我这样测试是另一个问题

  • 大多数测试代码覆盖率最低,工作量最小。
  • 已经决定不做单元测试..。(他们说工作太多)
  • 真正的集成测试,它所涉及的代码要少得多,当我想要实现一个良好的覆盖率时,也会看到大量的工作。
  • 该测试基于一个使用域语言方法构建的框架,这意味着我可以为当前的web api测试、selenium web ui测试、selenium负载测试和wpf ui测试描述相同的功能。

当我调用重新源服务器的web端点时,授权想要加载http://localhost/.well-known/openid-configuration,但失败了。

{"IDX10803:无法从:‘http://localhost/.well-known/openid-configuration’获得配置。“}

这是我为测试环境使用的OpenIdConnectSettings:

  • AllowInsecureHttp =真,
  • RequireHttpsMetadata = false

我可以让服务器发出配置,或者以其他方式提供配置吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-21 19:00:01

TestServer中需要注意的是,所有事情都发生在内存中:没有打开套接字来处理应用程序可能发送的HTTP请求。

不幸的是,OpenID连接客户端中间件(在内部使用HttpClient )无法知道这一点,并试图向OpenIddict发送“真实”的HTTP请求以检索发现文档。

要解决此问题,建议的方法是替换OIDC中间件使用TestServer.CreateHandler()提供的内存中处理程序所使用的默认后道处理程序。

代码语言:javascript
复制
app.UseOpenIdConnectAuthentication(new OpenIdConnectOptions
{
    Authority = "http://localhost:54540/",
    RequireHttpsMetadata = false,
    ClientId = "myClient",
    ClientSecret = "secret_secret_secret",
    BackchannelHttpHandler = server.CreateHandler()
});

注意:同样的方法也适用于JWT承载中间件和aspnet-cont肋骨内省中间件。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42931629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档