2013-04-23 51 views
0

我有一個silverlight 4應用程序,其中包含一個iframe以顯示aspx頁面。 Silverlight應用程序和iframe中的應用程序都位於同一個Web服務器中。Silverlight在iframe中登錄成功後出現http302錯誤

首先,有兩個login.aspx頁面。一個是Silverlight應用程序,另一個是嵌入在iframe中的另一個站點。我的Silverlight應用程序將首先加載併成功登錄Silverlight應用程序。

然後,在我的silverlight應用程序中,有一個鏈接按鈕可將aspx頁面加載到iframe中。

當我第一次訪問iframe中的aspx頁面時,它會轉到login.aspx併成功登錄。之後,我回到silverlight應用程序,我立即得到http 302錯誤。但是,我訪問aspx頁面和silvelight應用程序之間的持續時間不會超過會話超時時間。

所以任何人都可以弄清楚什麼會導致錯誤?

P.S.它只有在aspx頁面登錄成功後纔會發生。如果我沒有碰到iframe中的aspx頁面,只需訪問silverlight頁面,它就沒有錯誤。

回答

0

今天找到了根本原因並解決了它。這是由於兩個應用程序被放置在同一臺機器上。然後,第二次登錄將覆蓋第一次登錄的身份驗證Cookie。 (它意味着調用sencond的FormsAuthentication.SetAuthCookie()將覆蓋第一個。)所以這個解決方案非常簡單。只是爲了讓他們的身份驗證cookie的名字不同:

`

<authentication mode="Forms"> 
    <forms name=".SecondAuthCookie" loginUrl="login.aspx" 
    defaultUrl="default.aspx" /> 
</authentication> 

`