powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Почему куки дохнет: FormsAuthentication.SetAuthCookie ??
17 сообщений из 17, страница 1 из 1
Почему куки дохнет: FormsAuthentication.SetAuthCookie ??
    #33960395
Фотография slishnevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот кусок кода:
    protected void LoginButton_Click(object sender, EventArgs e)
    {
        if (FormsAuthentication.Authenticate(UsernameTextBox.Text, PasswordTextBox.Text))
            FormsAuthentication.SetAuthCookie(UsernameTextBox.Text, true);
    }

Ввожу логин, жму "Войти !!!", всё ОК, открывается главная страница.

Где то через час открываю - снова запрашивает ввести Логин.

Почему? Ведь параметер createPersistentCookie установлен "true":

FormsAuthentication.SetAuthCookie(UsernameTextBox.Text, true);


///
...
Рейтинг: 0 / 0
Почему куки дохнет: FormsAuthentication.SetAuthCookie ??
    #33960494
Фотография slishnevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо всем за активное участие
наверно пора искать другой форум...
...
Рейтинг: 0 / 0
Почему куки дохнет: FormsAuthentication.SetAuthCookie ??
    #33960497
Фотография slishnevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(version, name, issueDate, expiration, isPersistent, userData, cookiePath);


Ок, кто нибудь может мне обьяснить смысл параметров:
expiration и isPersistent? О каком expiration может идти речь если isPersistent=true?

В MSDN же русским языком написано "Persistent cookies do not expire".


 
...
Рейтинг: 0 / 0
Почему куки дохнет: FormsAuthentication.SetAuthCookie ??
    #33960680
Dimon aka Manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Потому что Улетающая аутентификация например


Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий.
...
Рейтинг: 0 / 0
Почему куки дохнет: FormsAuthentication.SetAuthCookie ??
    #33960731
Фотография slishnevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой, что это? :) Хотя я понял... AuthentivcationTicket кодируется на основе какого то машинного ключа специфического для той машины на которой кодируется. Я попытался вручную создать AuthentivcationTicket куки и с удивлением обнаружил что на моей машине он работает а на другой - нет. Абсолютно один и тот же код. Из чего я сделал вывод что в .NET 2.0 FormsAuthentication куки создаётся по другим правилам нежели в .NET 1.0/1.1, а именно -машинно-зависимые Authentication куки. Правда непонятно какой смысл во всём этом кроме как усиление защиты на тот случай если кто то решит сгенерировать такой же куки на другом компьютере и каким то образом подставить...

На самом деле, полазил по инету и вот что обнаружил:

FormsAuthentication, CreatePersistentCookie is broken:
http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=102143

ASP.NET 2.0 RTM breaks FormsAuthentication.SetAuthCookie cookie:
http://www.velocityreviews.com/forums/t112856-aspnet-20-rtm-breaks-formsauthenticationsetauthcookie-cookie.html

И наконец это:

Changes to persistent cookies in asp.net 2.0
http://dotnetnuke.com/Community/Blogs/tabid/825/EntryID/233/Default.aspx

Проверив, убедился что так и есть на самом деле.
Если в web.config не проставлен timeout аттрибут, то это значение по умолчанию 30 минут и куки дохнет ровно через 30 минут, проставив этот аттрибут и и поменяв его значение, убедился что куки стало дохнуть по-другому, через новый интервал.

Как сделать так чтобы куки не дохло вообще - пока такой возможности в asp.net 2.0 не обнаружил.

Конечно можно проставить интервал timeout максимум 9999999999 минут, нокак то по-уродски это, честно говоря.
...
Рейтинг: 0 / 0
Почему куки дохнет: FormsAuthentication.SetAuthCookie ??
    #33975629
Фотография slishnevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кто нибудь ?
...
Рейтинг: 0 / 0
Почему куки дохнет: FormsAuthentication.SetAuthCookie ??
    #33991904
belkazl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Бесконечного периода не бывает, либо мы ставим timeout либо нет и тогда timeout="30".belka
...
Рейтинг: 0 / 0
Почему куки дохнет: FormsAuthentication.SetAuthCookie ??
    #33992003
Фотография slishnevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конечно бывает.
...
Рейтинг: 0 / 0
Почему куки дохнет: FormsAuthentication.SetAuthCookie ??
    #33992069
Фотография slishnevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASP.NET 1.1 (2.0 не проверял):

FormsAuthentication.RedirectFromLoginPage(username, true);

Здесь нет expiration period ! И это понятно, isPersistent = true.
...
Рейтинг: 0 / 0
Почему куки дохнет: FormsAuthentication.SetAuthCookie ??
    #33992212
BrokenPot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А поставить timeout=0 не пробовали?
...
Рейтинг: 0 / 0
Почему куки дохнет: FormsAuthentication.SetAuthCookie ??
    #33992225
Фотография slishnevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пробывал, не работает, см. ниже...

Server Error in '/Homepage' Application.
Configuration Error
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.
Parser Error Message: The value for the property 'timeout' is not valid. The error is: The value must be inside the range 00:01:00-10675199.02:48:05.4775807.
Source Error:
Line 17:   <compilation debug="true"/>
Line 18:   <authentication mode="Forms">
Line 19:    <forms timeout="0">
...
Рейтинг: 0 / 0
Почему куки дохнет: FormsAuthentication.SetAuthCookie ??
    #33992366
BrokenPot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
createPersistentCookie
true to create a durable cookie (one that is saved across browser sessions)
Это ведь не значит, что куки будет жить вечно. Это, видимо, лишь означает, что он будет доступен из других сессий.

Попробуйте тогда поставить
Код: plaintext
FormsAuthentication.SlidingExpiration=True
...
Рейтинг: 0 / 0
Почему куки дохнет: FormsAuthentication.SetAuthCookie ??
    #33992685
Фотография slishnevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И?

Я же показал выше что ошибку выдаёт, а ещё выше, что у Микрософта задокументированно что это баг.
...
Рейтинг: 0 / 0
Почему куки дохнет: FormsAuthentication.SetAuthCookie ??
    #33992784
seggg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
неужели действительно так?!
А я то блин, думаю, что то у меня куки сдыхать стали в последнее время.  Код вроде такой же как раньше был на Net 1.1.
...
Рейтинг: 0 / 0
Почему куки дохнет: FormsAuthentication.SetAuthCookie ??
    #33992803
Фотография slishnevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
неужели действительно так?!
А я то блин, думаю, что то у меня куки сдыхать стали в последнее время.  Код вроде такой же как раньше был на Net 1.1.

Именно так я и обнаружил это.
В версии 2.0 как я понял уже не существует вечных куки, как это было в 1.1. Таймаут берётся теперь из web.config (Там ты обязан установить значение, или 30 мин по умолчанию) и прописывается в куки при его создании вопреки вашему желанию. 

Я считаю что это конкретная недоработка, потому как вообще противоречит смыслу фразы "Persistent cookie do not timeout."
...
Рейтинг: 0 / 0
Почему куки дохнет: FormsAuthentication.SetAuthCookie ??
    #33992852
BrokenPot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы невнимательно прочитали мой пост.

Я говорю не о PersistentCookie, а о SlidingExpiration.

Впрочем, может быть это я Вас невнимательно читаю. Вы где-нибудь писали о SlidingExpiration? Не могу найти.

Sliding expiration resets the expiration time for a valid authentication cookie if a request is made and more than half of the timeout interval has elapsed. If the cookie expires, the user must re-authenticate. Setting the SlidingExpiration property to false can improve the security of an application by limiting the time for which an authentication cookie is valid, based on the configured timeout value.
ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref12/html/P_System_Web_Security_FormsAuthentication_SlidingExpiration.htm
...
Рейтинг: 0 / 0
Почему куки дохнет: FormsAuthentication.SetAuthCookie ??
    #33992859
Фотография slishnevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"If the cookie expires, the user must re-authenticate."

MSDN: "Persistent cookies do not timeout (do not expire)"
 
И не имеет значение Sliding Expiration или что то другое.
Я уже не однократно поднимал этот вопрос, по моему ещё год назад, но никто пока не смог дать вразумительного ответа :)
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Почему куки дохнет: FormsAuthentication.SetAuthCookie ??
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]