Я сконфигурировал свои сервисы следующим образом:
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");
}
Как мне это сделать?