Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Почему куки дохнет: FormsAuthentication.SetAuthCookie ?? / 17 сообщений из 17, страница 1 из 1
02.09.2006, 20:38
    #33960395
slishnevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему куки дохнет: FormsAuthentication.SetAuthCookie ??
Вот кусок кода:
    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
03.09.2006, 04:21
    #33960494
slishnevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему куки дохнет: FormsAuthentication.SetAuthCookie ??
спасибо всем за активное участие
наверно пора искать другой форум...
...
Рейтинг: 0 / 0
03.09.2006, 05:39
    #33960497
slishnevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему куки дохнет: FormsAuthentication.SetAuthCookie ??
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(version, name, issueDate, expiration, isPersistent, userData, cookiePath);


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

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


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


Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий.
...
Рейтинг: 0 / 0
03.09.2006, 17:55
    #33960731
slishnevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему куки дохнет: FormsAuthentication.SetAuthCookie ??
Ой, что это? :) Хотя я понял... 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
09.09.2006, 05:18
    #33975629
slishnevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему куки дохнет: FormsAuthentication.SetAuthCookie ??
кто нибудь ?
...
Рейтинг: 0 / 0
16.09.2006, 15:10
    #33991904
belkazl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему куки дохнет: FormsAuthentication.SetAuthCookie ??
Бесконечного периода не бывает, либо мы ставим timeout либо нет и тогда timeout="30".belka
...
Рейтинг: 0 / 0
16.09.2006, 18:14
    #33992003
slishnevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему куки дохнет: FormsAuthentication.SetAuthCookie ??
Конечно бывает.
...
Рейтинг: 0 / 0
16.09.2006, 19:48
    #33992069
slishnevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему куки дохнет: FormsAuthentication.SetAuthCookie ??
ASP.NET 1.1 (2.0 не проверял):

FormsAuthentication.RedirectFromLoginPage(username, true);

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

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
17.09.2006, 12:03
    #33992366
BrokenPot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему куки дохнет: FormsAuthentication.SetAuthCookie ??
Код: plaintext
1.
createPersistentCookie
true to create a durable cookie (one that is saved across browser sessions)
Это ведь не значит, что куки будет жить вечно. Это, видимо, лишь означает, что он будет доступен из других сессий.

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

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

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

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

Я говорю не о 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
17.09.2006, 23:39
    #33992859
slishnevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему куки дохнет: FormsAuthentication.SetAuthCookie ??
"If the cookie expires, the user must re-authenticate."

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


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