Я использую Windows Identity Foundation (WIF) Служба маркеров безопасности (STS) для обработки проверки подлинности моего приложения, которая работает хорошо. Тем не менее, я не могу получить длительный вход в систему с STS.
Насколько я понимаю, мне не нужно заботиться о клиентских токенах на уровне приложения, так как они могут истечь все, что хотят, и это должно перенаправить меня на STS, и пока они все еще подключены к STS, это должно обновить токен приложения. И все же, похоже, он не хочет держать их в системе.
Вот что происходит в моем login.aspx на STS
var cookie = FormsAuthentication.GetAuthCookie(userName, persistTicket);
if (persistTicket)
cookie.Expires = DateTime.Now.AddDays(14);
Response.Cookies.Add(cookie);
var returnUrl = Request.QueryString["ReturnUrl"];
Response.Redirect(returnUrl ?? "default.aspx");
Который был взят почти напрямую из существующего приложения с использованием обычной проверки подлинности форм.
Из моего web.config
<authentication mode="Forms">
<forms loginUrl="Login.aspx" protection="All" timeout="2880"
name=".STS" path="/" requireSSL="false" slidingExpiration="true"
defaultUrl="default.aspx" cookieless="UseDeviceProfile"
enableCrossAppRedirects="false" />
</authentication>
Глядя на cookie-файл после того, как я войду в систему, я вижу, что время истечения срока действия cookie-файла установлено на 14 дней в будущем, и что cookie-файл является НЕ сессионным cookie-файлом.
Когда мне необходимо снова войти в STS, я вижу, что мой оригинальный файл cookie все еще там.
Есть ли какая-то функция отметки времени, которую STS встраивает в файл cookie, который делает недействительным мой файл cookie, хотя, насколько я знаю, он все еще должен быть действительным?