Asp основной сеанс web-api пуст после возврата ok () - PullRequest
0 голосов
/ 20 марта 2020

В моем проекте в контроллере авторизации я создаю OTP-код и возвращаюсь пользователю, а если пользователь отправляет другой запрос на код, проверяет его на сеанс, чтобы узнать, получит ли пользователь его до или нет, но после нового запроса. отметьте HttpContext.Session.Keys и он пуст

он работает только на почтальоне, а не в любом браузере

Мой класс запуска

services.AddMvcCore(config =>
{
    config.EnableEndpointRouting = false;
    config.ReturnHttpNotAcceptable = true;
    config.Filters.Add(typeof(RequireHttpsAttribute));
    var policy = new AuthorizationPolicyBuilder()
        .RequireAuthenticatedUser()
        .Build();
    config.Filters.Add(new AuthorizeFilter(policy));
})
 .AddApiExplorer()
 .AddFormatterMappings()
 .AddDataAnnotations()
 .AddCors(opt =>
    opt.AddPolicy("CorsPolicy", builder =>
    builder.WithOrigins("http://localhost:4200").AllowAnyMethod().AllowAnyHeader().AllowCredentials())
 ).AddNewtonsoftJson(opt =>
    {
        opt.SerializerSettings.ReferenceLoopHandling =
        Newtonsoft.Json.ReferenceLoopHandling.Ignore;
    });
services.AddResponseCaching();
services.AddHsts(opt =>
{
    opt.MaxAge = TimeSpan.FromMinutes(5);
});

И

seeder.SeedUsers();
app.UseRouting();
app.UseStaticFiles(new StaticFileOptions()
{
    RequestPath = new PathString("/wwwroot")
});
app.UseSession();

В другой проект работает отлично, я не знаю, что не так

1 Ответ

2 голосов
/ 20 марта 2020

Я предполагаю, что вы используете angualr на стороне клиента

, поэтому

В рабочем режиме клиент и веб-API на одном сайте, поэтому у вас нет проблем с сеансом, но в режиме разработки ваш angular размещен на локальном хосте: 4200, который сбрасывает сеанс при каждом вызове службы.

Вы можете разместить angular и веб-API на одном хосте в режиме разработки, но это означает, что я должен все время выполняйте сборку (что приведет к большим накладным расходам).

используйте другие способы сохранения кода

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...