2013-06-12 83 views
4

我們Sitecore的6.6.0(修訂版120918)爲基礎的網站可以工作在HTTP和HTTPS。我們還有一個安全要求,即通過http訪問所有cookie,而不管該網站是否通過http訪問。Sitecore的與requireSSL餅乾

我們已經通過在web.config中requireSSL屬性如下描述達到了這個要求:How can I set the Secure flag on an ASP.NET Session Cookie?

隨着這一變化,我們的公共網站工作正常,並在Firebug分析的時候,我們可以看到,所有餅乾即使在通過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餅乾,但Sitecore的管理門戶與SSL餅乾的問題。它可能是和我們的網站不兼容的配置?

回答

1

我認爲這個問題將是你已經設置<httpCookies requireSSL="true" />將設置cookies來安全,但也必須設置窗體身份驗證:

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

。這將覆蓋的cookie設置。問題是在表單部分設置要求通過https而不是http進行登錄。在您的公共網站上,如果有登錄表單,您將只能看到此問題。

爲了解決這個問題,你將不得不讓你的創作系統SSL(這是無論如何推薦)或容忍不使用安全cookie。

MSDN: FormsAuthentication.RequireSSL Property

+0

問題是即使通過https完全訪問它,sitecore似乎也會引發問題。我仍然沒有對這些問題進行分析。 – ravinsp

0

基於該錯誤消息我猜的登錄嘗試設置cookie與安全屬性時,連接是不安全的。如果請求已經安全,這當然會成功。

正如你可能可以使用IIS重寫請求重定向到/ Sitecore的SSL上被設置任何cookie之前,因爲我假設你想要的內容管理上的SSL所有請求解決方法。

我也可能在這裏完全不正確:)

+0

Cookie的安全屬性不應取決於通過http還是https訪問站點。實際上,cookies的安全標誌可確保即使在通過http訪問站點時也始終通過ssl傳輸cookie。 – ravinsp