Моего Owin настроен на использование проверки подлинности на основе печенья с OpenIdConnect так:ASP.NET - Owin статического WebMethod - печенье не подтверждено
var options = new CookieAuthenticationOptions()
{
ExpireTimeSpan = TimeSpan.FromDays(30),
Provider = new CookieAuthenticationProvider {
OnValidateIdentity = cookieValidateIdentityContext =>
{
cookieValidateIdentityContext.Properties.ExpiresUtc = DateTime.UtcNow.AddMinutes(1);
return Task.FromResult(30);
}
}
}
app.UseCookieAuthentication(options);
app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions() {.....})
У меня есть статический WebMethod как это
[WebMethod]
public static String GetJsonData(string query)
{
var user = HttpContext.Current.User.Identity.Name;
.....
}
Это отлично работает, но если пользователь покидает браузер более 20 минут, auth не работает. HttpContext.Current.User.Identity.IsAuthenticated - false.
Это происходит, хотя мой файл cookie истекает через 30 дней. Есть ли способ принудительно проверить cookie и autenticate? Я не использую auth на основе форм.
Кроме того, после того, как пройдет 20 + минута, функция cookieValidateIdentityContext
не вызывается. Если я установил точку останова в файле cookieValidateIdentityContext, до 20 минут точка останова будет удалена, но не после.
Кажется, что SlidingExpiration может быть только для проверки подлинности на основе форм. Я использую owin здесь – tvr
ссылка, которую я предоставил для OWIN –