Windows 10, .NET Core 3.0
У меня есть пустой проект mvc (dotnet new mvc).
Домашний индекс:
public async Task<IActionResult> Index()
{
if(User.Identity.Name == null) {
var props = new AuthenticationProperties
{
IsPersistent = true,
ExpiresUtc = DateTime.UtcNow.AddMinutes(30)
};
var identity = new ClaimsIdentity(new[]
{
new Claim(ClaimTypes.Name, "sometestuser")
}, CookieAuthenticationDefaults.AuthenticationScheme);
await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(identity), props);
}
return Content(User.Identity.Name);
}
Startup.cs (ConfigureServices и Configure)
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme).AddCookie(CookieAuthenticationDefaults.AuthenticationScheme);
app.UseAuthentication();
При обновлении индекса User.Identity.Name всегда имеет значение null, и IsAuthentication никогда не устанавливается.