c#-将cookie设置为Asp.Net Core TestServer的httpClient

我正在使用TestServer测试ASP.NET Core应用,并且有些控制器需要Cookie身份验证.我已经创建了这样的测试服务器实例:

_testServer = new TestServer(new WebHostBuilder()
            .UseEnvironment(CustomEnvironments.Test)
            .UseContentRoot(currentDirectory)                
            .UseStartup<Web.Startup>()
            .UseUrls("http://localhost/"));

ApiClient = _testServer.CreateClient();

现在我必须添加身份验证Cookie,但服务器会忽略它.如果可以直接创建客户端,则可以将HttpClientHandler传递给承包商,并将UseCookies设置为false,它可以工作,但是当我从测试服务器获取客户端时,我无法访问该处理程序.有没有一种方法可以添加身份验证cookie来测试客户端?

最佳答案
我找到了解决方案. TestServer具有方法CreateRequest(string path),它返回RequestBuilder,该方法允许将Cookie插入标头

转载注明原文:c#-将cookie设置为Asp.Net Core TestServer的httpClient - 代码日志