Истекшее время не работает в ASP.Net Core - PullRequest
0 голосов
/ 18 декабря 2018

https://github.com/NanaseRuri/LibraryDemo/tree/Failed

Я уже установил истекшее время в моем проекте ASP.Net Core, но оно не работает.Через 8 секунд я все еще мог войти в действие с [Authorize].

await HttpContext.SignInAsync(principal,new AuthenticationProperties()
{
    ExpiresUtc = DateTime.UtcNow.AddSeconds(8)
});

Startup.cs:

services.AddAuthentication(options =>
{
    options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
    options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
})
.AddCookie(options =>
{
});

Аутентификация:

if (admin.Password == encryptedPassword)
{
    ClaimsIdentity identity = new ClaimsIdentity("Cookie");
    identity.AddClaims(new[]
    {
        new Claim(ClaimTypes.Name, admin.UserName),
        new Claim(ClaimTypes.Email, admin.Email),
        new Claim(ClaimTypes.MobilePhone, admin.PhoneNumber),
        new Claim(ClaimTypes.Role, "admin"),
    });

    var principal = new ClaimsPrincipal(identity);
    await HttpContext.SignInAsync(principal, new AuthenticationProperties()
    {
        ExpiresUtc = DateTime.UtcNow.AddSeconds(8)
    });

    if (returnUrl != null)
    {
        return Redirect(returnUrl);
    }

    return RedirectToAction("Index");
}

1 Ответ

0 голосов
/ 18 декабря 2018

Пожалуйста, попробуйте со следующим!Я проверил с этим, и он отлично работает.

services.ConfigureApplicationCookie(options =>
{
    // Cookie settings
    options.Cookie.HttpOnly = true;
    options.ExpireTimeSpan = TimeSpan.FromMinutes(5); // Set your expiration time here


    options.SlidingExpiration = false;
});

Сделайте options.SlidingExpiration = true;, если вы не хотите, чтобы срок действия истек, пока вошел в систему пользователь активен.

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