Знакомство с файлами cookie
Сначала мы даем краткое введение в файлы cookie и объясняем, как использовать ASP для поддержки файлов cookie.
Файл cookie — это небольшой файл, хранящийся на компьютере клиента. Это означает, что каждый раз, когда пользователь посещает ваш сайт, вы можете тайно разместить файл, содержащий соответствующую информацию, на его или ее жестком диске. Этот файл может содержать практически любую информацию, которую вы хотите настроить, включая информацию о пользователе, статус сайта и многое другое. В этом случае существует потенциальная опасность: информацию могут прочитать хакеры. Чтобы предотвратить возникновение этой проблемы, эффективным способом является предоставление доступа к файлу cookie только тому домену, который его создал. Это означает: например, ytu.edu.cn имеет доступ только к файлам cookie, созданным ytu.edu.cn. Вообще говоря, это не проблема; но что, если вам нужно поделиться информацией о пользователе, хранящейся в файлах cookie, с двумя разными сайтами на двух разных доменах? Конечно, вы можете скопировать информацию о пользователе, но если вам нужно, можете ли вы только это сделать? зарегистрироваться на одном сайте и стать зарегистрированным пользователем другого сайта? Или, что, если два сайта используют общую базу данных пользователей и требуют от пользователей автоматического входа в систему? В настоящее время лучшим решением является совместное использование файлов cookie между доменами.
Здесь давайте сначала посмотрим на код обработки файлов cookie ASP для удобства использования в будущем.
'Создать файл cookie
Response.Cookies(MyCookie).Expires=Дата+365
Response.Cookies(MyCookle).Domain=mydomaln.com
Response.Cookies(MyCookle)(имя пользователя)=strUsername
Response.Cookies(MyCookle)(Пароль)=strPassword
Чтение и запись файлов cookie очень просты. Приведенный выше код создает файл cookie и устанавливает для него свойства: домен, срок действия и другие значения, хранящиеся в файле cookie. Здесь strUsename, strPassword — это переменные, установленные где-то ранее. Затем прочитайте в файле cookie следующее утверждение.
«Читать файлы cookie»
datExpDate=Request.Cookies(MyCookie)
strDomaln=Request.Cookies(MyCookle).Домен
strUsername=Request.Cookies(MyCookle)(имя пользователя)
strPassword=Request.Cookies(MyCookie)(Пароль)
Для получения более подробной информации обратитесь к информации ASP.
выполнить
Хитрость простого обмена файлами cookie заключается в перенаправлении, общий процесс таков:
1. Пользователь нажимает на сайт siteA.com.
2. Если у пользователя нет файла cookie для siteA.com, перенаправьте пользователя на siteB.com.
3. Если у пользователя есть файл cookie для siteB.com, перенаправьте пользователя обратно на siteA.com вместе со специальным флагом (поясняется ниже), в противном случае просто перенаправьте пользователя на siteA.com.
4. Создайте файл cookie на сайте siteA.com.
Это кажется простым, но проанализируйте это внимательно: siteA.com и siteB.com используют одни и те же пользовательские настройки, поэтому, если у пользователя есть файл cookie для siteB.com (уже зарегистрированный), siteA.com также может прочитать файл cookie и предоставить разрешения для файлов cookie. характеристики. Таким образом, пользователи, посещающие siteA.com, будут выглядеть так, как будто они посетили siteB.com.
Эту проверку следует реализовать в файле cookie.inc, содержащемся на сайте siteA.com. Давайте посмотрим на этот код:
л-1
'SiteA.com проверяет файлы cookie
Если Request.Querystring(Checked)<>True, тогда
Если не Request.Cookies(SiteA_Cookie).Haskeys, тогда
'Перенаправление на siteB.com
Response.Redlrect(http://www.siteB.com/cookie.asp)
Конец, если
Конец, если
Если у пользователя есть файл cookie для siteA.com, ничего делать не нужно, используется первый оператор if, чтобы исключить бесконечный цикл. Давайте посмотрим на файл cookie.asp на siteB.com, чтобы лучше понять.
1-2
'СайтB.com
'Проверить файлы cookie
Если не Request.Cookies(SlteB_Cookle).Haskeys, то
'Перенаправление на siteA.com
Response.Redirect(http://www.siteA.com/index.asp&?checked=True)
Еще
'Получить имя пользователя
strUsername=Request.Cookies(SiteB_Cookie)(имя пользователя)
'Вернем пользователя на siteA.com со специальным флагом
Response.Redlrect(http://www.siteA.com/index.asp&?checked=True&identrfer=&strUsername)
Конец, если
Если у пользователя по-прежнему нет файла cookie на siteB.com, отправьте его обратно на siteA.com и сообщите приложению, что вы проверили файл cookie, указав в запросе параметр checkd. В противном случае отправьте пользователя обратно на siteB.com и выйдите из цикла.