2011-01-21 4 views
1

Недавно мы обновили сайт от классического ASP до ASP.Net 3.5.ASP.NET Членство пользователя ошибка входа в систему cookie

Старый сайт использовал систему входа в систему на основе файлов cookie. Он будет помнить информацию для входа в систему, если флажок был выбран при первом входе в систему. Это, конечно же, будет сделано в файле cookie.

Затем мы обновили сайт с помощью ASP.net. Мы перевели старых пользователей на встроенную аутентификацию членства в ASP.net.

Это прекрасно работает, за исключением действительно странного случая. Когда пользователь входит в систему на сайте, но имеет старый файл cookie для сайта, на котором хранится информация для входа, аутентификация ASP.net, похоже, сбой.

Нет сообщений об ошибке, никакой информации о любом виде.

Пользователь пытается войти в систему, не получает сообщение об ошибке, просто возвращается на страницу входа.

Кажется, что он смотрит на старый файл cookie и просто не знает, что делать.

Доменные имена старого сайта и нового сайта одинаковы.

Это не происходит для новых пользователей, которые никогда не были на старом сайте.

Если старый пользователь сайта очищает свои файлы cookie в своем браузере, он может войти в систему, и ошибка никогда не повторится.

Но у нас есть 5000 пользователей, мы не можем сказать всем, кто их очистит.

Я попытался изменить настройку в следующей строке кода в своем web.config.

<authentication mode="Forms"> 
    <forms cookieless="UseCookies" loginUrl="~\User\Login.aspx" defaultUrl="~\Default.aspx" timeout="26280000" /> 
</authentication> 

Но я не уверен, помогло оно или нет.

Любая помощь будет принята с благодарностью.

Благодаря

ответ

2

с проверкой подлинности форм, ваш Логин управляется куки проверки подлинности форм. Поэтому я не понимаю, как ваш старый файл cookie вмешивается в FAC?

Если вы сохраняете какое-то значение в своем пользовательском cookie, одним из способов было бы изменить имя файла cookie в новом коде. то есть, если код создает «CookieA», то же имя, что и для старого приложения, измените его на «CookieB» и при чтении.

+0

Пробовал, не работает. Это просто не имеет смысла, я знаю, что старый cookie не должен мешать новому, но единственный способ заставить старых пользователей войти в систему - сначала очистить свои файлы cookie. Может ли быть что-то еще? – matwonk

+0

У вас есть машина, где вы можете ее воспроизвести? Если это так, вы можете использовать firebug или другие инструменты для проверки файлов cookie. Также не забудьте удалить ссылку на старый файл cookie в коде. – gbs

+0

Я, наконец, понял. Печеньки использовали одно и то же имя. Старый сайт использовал одно и то же имя, но во всем нижнем регистре, в то время как новый сайт с использованием заглавной буквы я предполагал, что все в порядке, он считал их одним и тем же файлом cookie. – matwonk

0

Укажите печенье имя лексемы:

<forms name=".ASPXFORMSAUTH" ... /> 
Смежные вопросы