我对需要身份的方法的Http请求有疑问。 我正在编写这样的集成测试:
// Act
var response = await fixture.httpClient.GetAsync("api/Orders");
var result = JsonConvert.DeserializeObject<QueryResult<IEnumerable<OrdersList>>>(await response.Content.ReadAsStringAsync());
其中api / Orders方法仅需要授权用户:
string userId = userManager.GetUserId(User);
if (userId != null)
{
...
但是..我不知道如何调用我想被授权的HttpClient。
我正在使用Mirosoft.Identity。 Startup.cs:
public void ConfigureServices(IServiceCollection services)
{
services.AddIdentity<ApplicationUser, IdentityRole>(o => {
o.Password.RequireDigit = false;
o.Password.RequiredUniqueChars = 0;
o.Password.RequireLowercase = false;
o.Password.RequireNonAlphanumeric = false;
o.Password.RequireUppercase = false;
o.Password.RequiredLength = 6;
o.Lockout.AllowedForNewUsers = false;
o.Lockout.MaxFailedAccessAttempts = 10;
})
.AddEntityFrameworkStores<TakeMeAwayDbContext>()
.AddDefaultTokenProviders();
services.ConfigureApplicationCookie(options =>
{
options.Cookie.Name = "Cookie";
options.Cookie.HttpOnly = true;
options.ExpireTimeSpan = TimeSpan.FromMinutes(60);
options.LoginPath = "/api/Accounts/Login";
options.ReturnUrlParameter = CookieAuthenticationDefaults.ReturnUrlParameter;
options.SlidingExpiration = true;
});
}
我真的不想更改授权逻辑,因为我的API已经完成,但是我真的想编写一些集成测试。
第二个问题..如果我将这个带有MS Identity的API与Android App(带有REST API调用)一起使用,将会遇到麻烦吗?我的意思是,Android应用程序不会忘记授权吗?
感谢帮助!