Настройка авторизации Microsoft.Identity через HttpClient - PullRequest
0 голосов
/ 08 сентября 2018

У меня есть вопрос о 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 готов, но я действительно хочу написать несколько интеграционных тестов.

Второй вопрос. Будет ли проблема, если я буду использовать этот API с приложением MS Identity to Android (с вызовами REST API)? Я имею в виду, приложение Android не забывает авторизацию?

Спасибо за помощь!

...