2014-05-22 28 views
0

我有如何確保用戶已登錄到我的系統?

1 2頁)託管Silverlight應用程序

當正確我的用戶登錄我創建一個GUID,我然後放入會話登錄頁面 2)aspx頁面的Web應用程序。他們被重定向到託管Silverlight應用程序的頁面。 Silverlight頁面讀取GUID,執行一些額外的處理,然後顯示應用程序。這工作完美。

但是,如果啓動一個新窗口,用戶可以簡單地將鏈接複製並粘貼到silverlight頁面,它仍然可以工作。我期待新窗口有一個新的會話,但由於某種原因,它可以使用與前一個會話相同的會話?

這是一個安全風險

什麼是最好的方法呢?

我嘗試了好幾種方法,例如隱藏字段等

我不希望有把任何東西到URLS

我使用Response.Redirect去Silverlight的主頁。我無法使用server.transfer,因爲我需要更改網址

對此有何看法?

這是一個C#web應用程序。

如果這有幫助,登錄和silverlight主頁都駐留在同一個Web應用程序中?

保羅

回答

1

ASP.Net窗體身份驗證聽起來像是你最好的賭注

至於會議的多個選項卡中的共享/山姆的窗戶e瀏覽器,這是相當標準的瀏覽器功能,據我所知,不幸的是無法繞過它。注意:會話僅針對單個用戶共享,並且僅在同一瀏覽器內共享(即同一臺PC上的同一用戶使用其他瀏覽器向您的網絡應用發起請求,會話將不會共享)

+0

+1:是會話cookie(這是ASP.Net sessionID的存儲方式)是(在大多數瀏覽器中)在用「新窗口」打開的選項卡和窗口之間共享的。如果你需要防止SL控制的多個實例,你需要以某種方式識別一個(不是用cookie,而是由SL創建的隨機guid),並在新文件啓動(由於頁面導航或克隆頁面)時執行某些操作。 –