Первый подход определяет общий словарь, значения которого являются общим списком, что означает, что он может хранить значения любого типа. Это также используется при определении таблиц, так как таблицы могут хранить столбцы с различными типами.
Во втором подходе, когда вы вставляете первое значение в словарь, он устанавливает тип списка значений словаря для этого типа элемента. Так что теперь это простой список.
q) d2: ()!()
q) d2[`t1]:2017.01.01
q) type value d2 / 14h
Это означает, что теперь значения словаря не могут быть общим списком и могут хранить только элементы типа даты.
Чтобы создать общий словарь (в котором хранится общий список в качестве значений), введите значение первой записи как ноль (: :). Это то, что используется словарями пространства имен.
q) d2: ()!()
q) d2[`]:(::)
Теперь он может хранить любое значение.
q) d2[`t2]:2018.01.01
q) d2[`idx]:42
При создании cookie, можно установить домен:
HttpCookie cookie = new HttpCookie("name", "value");
cookie.Domain = "cookies.com";
Это разрешит Ваши куки, чтобы быть доступным от всех субдоменов cookies.com.
При использовании FormsAuthentication затем, можно установить домен для подлинного cookie в web.config:
<forms name=".ASPXAUTH"
loginUrl="login.aspx"
defaultUrl="default.aspx"
protection="All"
timeout="30"
path="/"
requireSSL="false"
domain="cookies.com">
</forms>
Помните что, чтобы единая точка входа работала над несколькими субдоменами, Ваши приложения ASP.NET должны совместно использовать те же ключи машины, как объяснено в этой статье CodeProject.
Совместное использование сессий между различными субдоменами (различные рабочие процессы) является более трудным, потому что сессии ограничиваются к приложению, и необходимо будет реализовать пользовательский механизм синхронизации сессии.
Да, необходимо использовать ".cookies.com" не "cookies.com"
Если вы хотите синхронизировать сеанс ASP.NET и не используете проверку подлинности с помощью форм (например, на вашем сайте нет входа в систему), попробуйте добавить следующий код в файл Globals.asax . Это сработало для меня как чемпион и избавило меня от серьезного горя.
protected void Application_PreRequestHandlerExecute(Object sender, EventArgs e)
{
/// only apply session cookie persistence to requests requiring session information
#region session cookie
if (Context.Handler is IRequiresSessionState || Context.Handler is IReadOnlySessionState )
{
/// Ensure ASP.NET Session Cookies are accessible throughout the subdomains.
if (Request.Cookies["ASP.NET_SessionId"] != null && Session != null && Session.SessionID != null)
{
Response.Cookies["ASP.NET_SessionId"].Value = Session.SessionID;
Response.Cookies["ASP.NET_SessionId"].Domain = ".know24.net"; // the full stop prefix denotes all sub domains
Response.Cookies["ASP.NET_SessionId"].Path = "/"; //default session cookie path root
}
}
#endregion
}
Я нашел это первоначально размещенное здесь: http://www.know24.net/blog/ASPNET+Session+State+Cookies+And+Subdomains.aspx
Я верю, делают cookie для http://cookies.com. (Никакой субдомен или перечисленный www)