У меня есть проблема. У меня есть windows сервер, на котором размещен наш сайт + целевые страницы. Пример целевой страницы: https://lp.cmtrading.com/en/2019/8/500_risk_free/?a=41111&vvar1=test&vvar2=test Как вы можете видеть, в cook ie он сохраняет параметр 'a' и другой параметр с именем: MARKETING_CONTACT_TRACKING, который сохраняет в json другие параметры запроса строка. Это делается с помощью OnActionExecuting, как вы можете видеть здесь:
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var paramsAffiliates = new[] { Main.MARKETING_AFFILIATE_PARAM, Main.MARKETING_CXD_PARAM, Main.MARKETING_SUBAFFILIATE_PARAM };
SaveQueryToCookie(filterContext, paramsAffiliates);
SaveContactTrackingToCookie(filterContext);
base.OnActionExecuting(filterContext);
return;
}
private void SaveQueryToCookie(ActionExecutingContext filterContext, string[] paramNames)
{
var dic = paramNames.ToDictionary(a => a, a => filterContext.HttpContext.Request.QueryString[a]);
if (dic.Values.Any(a => !string.IsNullOrWhiteSpace(a)))
{
foreach (var key in paramNames)
{
var value = string.IsNullOrWhiteSpace(dic[key])
? null
: dic[key];
filterContext.HttpContext.Response.SetCookie(
new HttpCookie(key, value)
{
Expires = value == null
? DateTime.Now.AddMonths(-1)
: DateTime.Now.Add(Settings.MarketingInfoExpiration)
});
filterContext.HttpContext.Request.Cookies[key].Value = value;
}
}
}
private void SaveContactTrackingToCookie(ActionExecutingContext filterContext)
{
var paramNames = Enum.GetValues(typeof(ContactTrackingParams)).Cast<ContactTrackingParams>();
var dic = paramNames.ToDictionary(a => a, a => filterContext.HttpContext.Request.QueryString[a.ToString()]);
if (dic[ContactTrackingParams.vClickID] == null)
{
string str = dic[ContactTrackingParams.gclid];
dic[ContactTrackingParams.vClickID] = str;
}
if (dic.Values.Any(a => !string.IsNullOrWhiteSpace(a)))
{
var data = dic.Where(a => !string.IsNullOrWhiteSpace(a.Value))
.ToDictionary(a => a.Key.ToString(), a => a.Value);
var ser = new JavaScriptSerializer();
var json = data.Any()
? ser.Serialize(data)
: null;
filterContext.HttpContext.Response.SetCookie(
new HttpCookie(Main.MARKETING_CONTACT_TRACKING_COOKIE, json)
{
Expires = json == null
? DateTime.Now.AddMonths(-1)
: DateTime.Now.Add(Settings.MarketingContactTrackingExpiration)
});
filterContext.HttpContext.Request.Cookies[Main.MARKETING_CONTACT_TRACKING_COOKIE].Value = json;
}
}
}
Недавно мы создали еще один поддомен, который размещен на linux с WordPress для целевых страниц, и у нас есть страница, например : https://lp3.cmtrading.com/ebook/?a=44004&subaffiliate=Facebook_Ebook&vvar1=sdkvmsdkv&vvar2=ndfvnsv
Как вы можете видеть здесь, это не сохраняет его для повара ie. Мой вопрос - может ли это быть связано с тем, что это не windows хостинг? или это не имеет к этому никакого отношения?