Sitecore with requireSSL for cookies

时间:2013-06-12 12:37:27

标签: asp.net sitecore requiressl

我们的Sitecore 6.6.0(rev.120918)网站可以通过http和https工作。我们还有一项安全要求,即无论是否通过http访问网站,都可以通过SSL传输所有Cookie。

我们已经通过在web.config中使用requireSSL属性来实现此要求,如下所述:How can I set the Secure flag on an ASP.NET Session Cookie?

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

但问题是,当我尝试通过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问题。可能是我们网站中的配置不兼容吗?

2 个答案:

答案 0 :(得分:1)

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

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

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

要解决此问题,您必须为您的创作系统启用SSL(无论如何推荐),或者不使用安全Cookie。

MSDN: FormsAuthentication.RequireSSL Property

答案 1 :(得分:0)

基于错误消息,我猜想当连接不安全时,登录尝试使用secure属性设置cookie。如果请求已经安全,这当然会成功。

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

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