5

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

我们通过使用 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 问题。会不会是和我们网站不兼容的配置?

4

2 回答 2

1

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

<system.web>
    <forms requireSSL="true">
        /* forms content */
    </forms>
</system.web>

因为这会覆盖 cookie 设置。问题是在表单部分设置该设置要求登录发生在 https 而不是 http。在您的公共网站上,如果有登录表单,您只会看到此问题。

要解决此问题,您要么必须为您的创作系统启用 SSL(无论如何都是推荐的),要么忍受不使用安全 cookie。

MSDN:FormsAuthentication.RequireSSL 属性

于 2013-06-12T18:09:58.773 回答
0

根据错误消息,我猜当连接不安全时,登录试图设置一个带有安全属性的 cookie。如果请求已经安全,这当然会成功。

作为一种解决方法,您可以在设置任何 cookie 之前使用 IIS Rewrite 将请求重定向到 /sitecore 到 SSL,因为我假设您确实希望 SSL 上的所有请求都用于内容管理。

我在这里也可能完全不正确:)

于 2013-06-13T05:34:52.357 回答