Как сохранить cookie / токен, чтобы [Authorize] не срабатывал после успешного входа? - PullRequest
0 голосов
/ 30 января 2019

Я сконфигурировал свои сервисы следующим образом:

public void ConfigureServices(IServiceCollection services)
{
  services.Configure<CookiePolicyOptions>(a =>
  {
    a.CheckConsentNeeded = context => true;
    a.MinimumSameSitePolicy = SameSiteMode.None;
  });

  services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
    .AddJwtBearer(a => a.TokenValidationParameters = new TokenValidationParameters
    {
      ValidateIssuer = true,
      ValidateAudience = true,
      ValidateLifetime = true,
      ValidateIssuerSigningKey = true,
      ValidIssuer = "blopp",
      ValidAudience = "snopp",
      IssuerSigningKey = new SymmetricSecurityKey(
      Encoding.UTF8.GetBytes("SecurityKeyOfProperLength"))
    });

  services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}

Конфигурация приложения содержит следующее.

...
app.UseStatusCodePagesWithRedirects("/sec/login");
app.UseMvcWithDefaultRoute();

В этом методе я создаю представление, которое после его перенаправления отправкидля метода post следующим образом:

<h2>Login</h2>
<form asp-controller="Sec" asp-action="Examine" method="post">
  ...
  <button type="submit">I accept</button>
</form>

Метод POST должен проверить условие, а затем, каким-либо образом , сохранить информацию и / или выдать токен, чтобы следующий доступ кзащищенное представление не вернет пользователя на страницу входа.

Я не уверен, как этого добиться.

[HttpPost]
public IActionResult Authorize()
{
  if(SecurityConditionConfirmed)
    DoSomethingSomehow();

  return Redirect("/home/index");
}

Как мне это сделать?

...