首页 > 解决方案 > 如何设置 HttpOnly 和安全“lang”Sitecore cookie?

问题描述

任何人,如何设置“lang”Sitecore cookie 的 HttpOnly 和 Secure 标志?我试图通过处理器管道设置为以下代码

public class CookiesFlagResolver : HttpRequestProcessor
{
    public override void Process(HttpRequestArgs args)
    {
        HttpContext current = HttpContext.Current;
        if (current != null)
        {
            SiteContext context = Context.Site;
            string cookieKey = context.GetCookieKey("lang");
            HttpCookie cookie = current.Request.Cookies[cookieKey];
            if (cookie != null)
            {
                if (cookie.HttpOnly == false || cookie.Secure == false)
                {
                    cookie.HttpOnly = true;
                    cookie.Secure = true;
                    current.Response.AppendCookie(cookie);
                }
            }
        }
    }
}

补丁配置

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/" xmlns:set="http://www.sitecore.net/xmlconfig/set/" xmlns:role="http://www.sitecore.net/xmlconfig/role/">
    <sitecore role:require="Standalone or ContentDelivery or ContentManagement">
        <pipelines>
            <httpRequestBegin>
                <processor type="Website.Custom.Pipelines.CookiesFlagResolver, Website" patch:before="processor[@type='Sitecore.Pipelines.HttpRequest.LanguageResolver, Sitecore.Kernel']"/>
            </httpRequestBegin>
        </pipelines>
    </sitecore>
</configuration>

我在调试时检查了代码是否被正确命中。不幸的是,浏览器中的“lang”cookie 仍然被禁用。

标签: cookiessitecorehttponly

解决方案


推荐阅读