2013-07-23 83 views
0

我有一個Silverlight Ria應用程序。我使用WebContext來創建身份驗證人員。 我有這些行在App.cs構造函數(它已經與Silverlight業務teplate一起): InitializeComponent();Silverlight WebContext在多個會話之間共享

WebContext webContext =新WebContext();
webContext.Authentication = new FormsWithTimeoutAuthentication(20);

this.ApplicationLifetimeObjects.Add(webContext);

我面臨的一個問題,當我在一個瀏覽器選項卡中打開應用程序,每一件事情是確定的,我嘗試打開另一個選項卡,並用不同的用戶登錄其影響在第一標籤中的應用。 我追蹤了WebContext哈希碼並得到相同的結果。所以WebContext似乎在這兩個應用程序實例上共享。

你有任何想法,爲什麼出現這種情況? 在此先感謝...

回答

1

Silverlight使用用於身份驗證的瀏覽器的HTTP堆棧。當您使用表單身份驗證時,瀏覽器cookie將被髮送到瀏覽器,並識別您當前的瀏覽器會話的經過身份驗證的用戶。所有瀏覽器選項卡共享相同的cookie,因此所有選項卡都被識別爲同一用戶。

爲了避免這個問題,你應該使用「隱私瀏覽」在Internet Explorer,或使用「微服私訪」在谷歌瀏覽器。

+0

謝謝分配。我是否可以自動創建該應用程序,我想讓我的應用程序能夠以隱私瀏覽的方式運行,所以用戶不必由他自己完成。 – Wasim

+0

除了專用眉毛,您還可以使用「文件」「新建會話」。真正的問題出現在FormsAuthentication中,並且您將遇到任何ASP.net應用程序而不是Silverlight的問題。 –

+0

謝謝。我使用客戶端網絡堆棧找到了解決該問題的方法。你可以在這裏找到解決它的文章http://blogs.msdn.com/b/kylemc/archive/2010/05/14/ria-services-authentication-out-of-browser.aspx – Wasim