带有用于 cookie 的 requireSSL 的 Sitecore

rav*_*nsp 5 asp.net sitecore requiressl

我们基于 Sitecore 6.6.0(修订版 120918)的网站可以通过 http 和 https 运行。我们还有一项安全要求,即无论网站是否通过 http 访问,都必须通过 SSL 传输所有 cookie。

我们通过在 web.config 中使用 requireSSL 属性实现了这一要求,如下所述:如何在 ASP.NET 会话 Cookie 上设置安全标志?

通过此更改,我们的公共网站运行良好,并且在 Firebug 中进行分析时,我们可以看到所有 cookie 都是“安全的”,即使通过 http 访问该网站也是如此。

但问题是当我尝试通过 http 登录到 sitecore 管理门户时,它抛出错误The application is configured to issue secure cookies. These cookies require the browser to issue the request over SSL (https protocol). However, the current request is not over SSL.我可以访问 sitecore 管理门户的唯一方法是通过 https。即使使用 https,它也会出现一些奇怪的问题。使用一段时间后,它说很多管理员用户已登录,我必须踢出一些才能进入。我也无法远程访问管理员门户。

为什么公共网站使用 SSL cookie,但 sitecore 管理门户有 SSL cookie 问题。它可能是我们网站中不兼容的配置吗?

Ric*_*eal 1

我认为问题在于您已经设置了<httpCookies requireSSL="true" />将 cookie 设置为安全的,但还必须设置表单身份验证:

<system.web>
    <forms requireSSL="true">
        /* forms content */
    </forms>
</system.web>
Run Code Online (Sandbox Code Playgroud)

因为这会覆盖 cookie 设置。问题是在表单部分设置该设置要求通过 https 而不是 http 进行登录。在您的公共网站上,只有存在登录表单时您才会看到此问题。

要解决此问题,您要么必须为您的创作系统启用 SSL(无论如何建议这样做),要么忍受不使用安全 cookie。

MSDN:FormsAuthentication.RequireSSL 属性