2014-06-04 127 views
1

當發佈到Azure中的登臺服務器時,我遇到了一個奇怪的問題。在此部署中,我有一個使用SQL成員身份的Web應用程序。當我嘗試通過登錄頁面登錄時,我被重定向回登錄頁面。這是一個.NET 4.0應用程序。Asp.net Forms身份驗證Cookie問題

使用Firebug的網絡面板我可以看到,當我點擊回車時,表單被髮布,響應頭部有一個set-cookie屬性用於我的身份驗證票證。它顯示了兩次。

.ASPXAUTHTEST=27D254F0AEEACB.........; domain=cloudapp.net; expires=Thu, 05-Jun-2014 05:29:24 GMT; path=/; HttpOnly 

當表單發佈時,cookie被設置,我在Firebug中看到我重定向到了默認URL。當我點擊默認網址時,cookie不存在,因此我立即註銷。

這是我正在使用的配置。

<authentication mode="Forms"> 
     <forms cookieless="UseCookies" enableCrossAppRedirects="false" loginUrl="~/Default.aspx" name=".ASPXAUTHTEST" slidingExpiration="true" 
     timeout="360" requireSSL="true" defaultUrl="~/Application/Index.aspx" protection="All" path="/" domain="cloudapp.net"/> 
</authentication> 

奇怪的是,我在生產中有相同的部署,它工作正常。我試過再次重新部署整個實例(新VM等)。這沒有奏效。我也嘗試部署到一個新的操作系統版本的思維,但沒有奏效。

我已經添加了一些日誌代碼來查看正在發生的事情,但它使我得出與Firebug相同的結論,cookie未在瀏覽器中設置。這不是瀏覽器相關的,因爲我已經嘗試過Chrome和IE。

我最近從Azure SDK 1.6升級到2.1。

有沒有人有任何建議?

+0

是您的登錄網址也是您的default.aspx? 'loginUrl =「〜/ Default.aspx」' –

+0

是域名真正的「cloudapp.net」,並且是您的SSL域名? – viperguynaz

+0

我的default.aspx頁面也是我的loginUrl。分段的域是cloudapp.net(Azure的默認域)。沒有任何運氣,我嘗試了對於requireSSL的真實和錯誤。 – Brownman98

回答

0

經過進一步的研究,我認爲可以歸因於Mozilla的公共後綴列表以及使用它們限制某些域上的Cookie的瀏覽器。該網站在IE和Safari上工作。

當我改變了:

domain="cloudapp.net" 

domain="{guid}.cloudapp.net" 

它適用於所有瀏覽器。

This StackOverflow響應總結了它。您也可以前往Public Suffix List site