通过HttpClient设置Microsoft.Identity授权

时间:2018-09-08 15:15:03

标签: c# api authorization httpclient identity

我对需要身份的方法的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应用程序不会忘记授权吗?

感谢帮助!

0 个答案:

没有答案