Я использую идентификатор Asp.Net для авторизации моего приложения. Теперь мне нужно сделать это: если пользователь не работает через 30 минут, перейдите на страницу входа, когда он не выбирает флажок «isPersistent». И, если он выбрал флажок «isPersistent», установите дату истечения срока действия файла cookie в течение 14 дней. я пытаюсь сделать это путем изменения в Starup.Auth.cs, как это:Как установить asp.net Идентификатор cookie истекает время
public void ConfigureAuth(IAppBuilder app)
{
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
SlidingExpiration = true,
CookieName = WebHelpers.ConstStrings.AUTHCOOKIESNAME
});
}
и код для входа в аккаунт, как это:
private async Task SignInAsync(User user, bool isPersistent)
{
AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie);
var identity = await UserManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie);
if (isPersistent)
{
AuthenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = isPersistent }, identity);
}
else
{
AuthenticationManager.SignIn(new AuthenticationProperties() { ExpiresUtc = new DateTimeOffset(DateTime.UtcNow.AddMinutes(30)) }, identity);
}
}
Но я обнаружил, что, когда пользователь не выбирает isPersistent флажок , дата истечения срока действия cookie уже «Session», а не текущее время плюс 30 минут.
печенье статус при использовании кода, как после, так что 'запомнить меня' флажок не может работать. :(.
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
ExpireTimeSpan = TimeSpan.FromMinutes(30),
SlidingExpiration = true,
CookieName = WebHelpers.ConstStrings.AUTHCOOKIESNAME
});
Отлично, я использую ваш код и выполняю вышеуказанную функцию, спасибо. Кроме того, я поставил Owin из версии 2.1.0 для обновления до 3.0.1. –
Спасибо, все прояснилось мне – Janiiik
Спасибо, ваш код и объяснение отлично работают. –