我正在使用TestServer测试ASP.NET Core应用,并且有些控制器需要Cookie身份验证。我已经创建了这样的测试服务器实例:
_testServer = new TestServer(new WebHostBuilder()
.UseEnvironment(CustomEnvironments.Test)
.UseContentRoot(currentDirectory)
.UseStartup<Web.Startup>()
.UseUrls("http://localhost/"));
ApiClient = _testServer.CreateClient();
Run Code Online (Sandbox Code Playgroud)
现在我必须添加身份验证Cookie,但服务器会忽略它。如果可以直接创建客户端,则可以将其传递HttpClientHandler给承包商UseCookies,并将其设置为false,它可以工作,但是当我从测试服务器获取客户端时,我无法访问处理程序。有没有一种方法可以添加身份验证cookie来测试客户端?
我有一个带有整数输入数组的控制器方法,它不能为null或大于10个元素.为了验证输入,我做了一个课程:
public class TestForm
{
[Required]
[MaxLength(10)]
public long[] feedIds { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
和控制器方法:
[HttpPost]
public async Task<IActionResult> DoSomeJob(TestForm form)
{
//Do some job
}
Run Code Online (Sandbox Code Playgroud)
根据MSDN,System.ComponentModel.DataAnnotations.MaxLength可以用于数组,但是没有验证,它获取null和任何大小的数组.我究竟做错了什么?