我有一个基于OpenIdDict的AspNet.Security.OpenIdConnect.Server身份验证服务器。设置按预期工作。
现在,为了进行一些流程集成;系统测试横跨整个后端体系结构,我使用了TestServer类。
为什么我这样测试是另一个问题
当我调用重新源服务器的web端点时,授权想要加载http://localhost/.well-known/openid-configuration,但失败了。
{"IDX10803:无法从:‘http://localhost/.well-known/openid-configuration’获得配置。“}
这是我为测试环境使用的OpenIdConnectSettings:
我可以让服务器发出配置,或者以其他方式提供配置吗?
发布于 2017-03-21 19:00:01
在TestServer中需要注意的是,所有事情都发生在内存中:没有打开套接字来处理应用程序可能发送的HTTP请求。
不幸的是,OpenID连接客户端中间件(在内部使用HttpClient )无法知道这一点,并试图向OpenIddict发送“真实”的HTTP请求以检索发现文档。
要解决此问题,建议的方法是替换OIDC中间件使用TestServer.CreateHandler()提供的内存中处理程序所使用的默认后道处理程序。
app.UseOpenIdConnectAuthentication(new OpenIdConnectOptions
{
Authority = "http://localhost:54540/",
RequireHttpsMetadata = false,
ClientId = "myClient",
ClientSecret = "secret_secret_secret",
BackchannelHttpHandler = server.CreateHandler()
});注意:同样的方法也适用于JWT承载中间件和aspnet-cont肋骨内省中间件。
https://stackoverflow.com/questions/42931629
复制相似问题