Правильный ответ на ваш вопрос находится в разделе 7.19 спецификации C # 3.0, которую вы легко найдете в Интернете. Для вашего удобства, соответствующий текст:
7.19 Булевы выражения
Булево-выражение - это выражение, которое дает результат типа bool.
Управляющим условным выражением оператора if [...] является логическое выражение. [...]
Булево выражение должно иметь тип, который может быть неявно преобразован в bool, или тип, который реализует оператор true. Если ни одно из требований не выполнено, возникает ошибка времени компиляции.
Если логическое выражение имеет тип, который не может быть неявно преобразован в bool, но реализует оператор true, то после вычисления выражения вызывается реализация оператора true, предоставляемая этим типом, для получения значения bool.
Нет никаких других типов, кроме самого bool, которые неявно преобразуются в bool посредством встроенного преобразования, но, конечно, пользовательские неявные преобразования в bool могут быть определены пользователем.
Вы можете написать свое собственное ПО SessionMiddleware для установки и получения файлов cookie на основе доменов.
По сути, вы хотите скопировать существующий класс SessionMiddleware . В функции process_request
для просмотра домена и получения правильного файла cookie для настройки SessionStore. В process_response
вы захотите написать куки для обоих поддоменов. В ваших настройках вы удалите существующий класс SessionMiddleware и замените его своим собственным.
Это только у меня в голове, так что не ненавидь меня, если это не сработает. Желаем удачи, и, пожалуйста, опубликуйте свои выводы для будущих читателей.
Недавно я видел похожий вопрос в: Как получить отдельные приложения Django на одном поддомене для совместного использования cookie сеанса?
Где было рекомендовано иметь отдельные сеансы, но с одним знаком -при использовании django-cas (вы входите только на один из сайтов).
Я не знаю django, но возможно ли вам установить 2 куки вместо 1? Видите ли, cookie отправляется только в том случае, если домен cookie соответствует URL-адресу домена? Если вы хотите иметь один и тот же сеанс на 2 разных доменах, вы можете установить 2 куки с одинаковым значением и разные домены. В этом случае .example.com и support.example.com. Таким образом, вы получите этот cookie только при доступе к одному из них.
У меня есть приложение с несколькими доменами, поэтому решение с изменением чего-либо в settings.py мне не подошло. Поэтому я установил cookie для основного домена следующим образом:
# let's get our domain
arr = request.get_host().split(':')[0].split('.')
# if we are at subdomain page right now
# we should delete subdomain using:
# arr.pop(0)
domain = ".".join(arr)
response.set_cookie('city', 'somevalue, domain="."+domain)
Этот кодовый набор cookie для всех поддоменов со страниц доменов / поддоменов.