Как войти в систему и использовать ASP.Net Core 2 Server REST API из приложения Xamarin - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть мобильное приложение Xamarin, которое нормально вызывает мой веб-сервер, используя анонимный apis серверов (используя HttpWebRequest).Однако мой сервер также имеет API, которые защищены.Я использую стандартную проверку подлинности с помощью cookie (запуск ниже).

Я пытаюсь войти в систему из мобильного приложения, но не уверен, что это можно сделать.Можете ли вы войти из мобильного приложения, используя эту аутентификацию?мне нужно переключиться на токены на предъявителя?

кто-нибудь знает, как войти на стандартный основной сервер asp с аутентификацией cookie и вызвать стандартный REST API из мобильного приложения ac # (Xamarin)?

если нет, есть ли альтернатива?Спасибо.

public void ConfigureServices(IServiceCollection services)
{
    services.Configure<CookiePolicyOptions>(options =>
    {
        options.CheckConsentNeeded = context => true;
        options.MinimumSameSitePolicy = SameSiteMode.None;
    });
    services.AddAuthentication(options =>
    {
        options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
        options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
        options.DefaultChallengeScheme = CookieAuthenticationDefaults.AuthenticationScheme;
    }).AddCookie(options =>
    {
        options.LoginPath = new PathString("/Login/Login");
        options.ExpireTimeSpan = TimeSpan.FromHours(24.0);
    });
    services.AddMvc(x =>
    {
        var policy = new AuthorizationPolicyBuilder()
                         .RequireAuthenticatedUser()
                         .Build();
        x.Filters.Add(new AuthorizeFilter(policy));
    })
    .SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
    .AddJsonOptions(options =>
            options.SerializerSettings.ContractResolver = new DefaultContractResolver());

    services.Configure<FormOptions>(x =>
    {
        x.ValueLengthLimit = int.MaxValue;
        x.MultipartBodyLengthLimit = int.MaxValue;
    });

    services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
    services.AddSingleton(Configuration);
    services.AddMemoryCache();
    services.AddSession();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    else
    {
        app.UseExceptionHandler("/Home/Error");
        app.UseHsts();
    }
    app.UseHttpsRedirection();
    app.UseStaticFiles();
    app.UseAuthentication();
    app.UseCookiePolicy();

    app.UseMvc(routes =>
    {
        routes.MapRoute(
            name: "default",
            template: "{controller=Home}/{action=Index}/{id?}");
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...