如何存储Cookie /提供令牌,以使[授权]在成功登录后不会出现?

时间:2019-01-30 17:40:31

标签: c# authentication asp.net-core asp.net-core-2.2

我已经这样配置我的服务:

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");
}

我该怎么做?

0 个答案:

没有答案