簡體   English   中英

在多個瀏覽器選項卡中對用戶進行身份驗證

[英]Authentication of user in multiple browser tabs

我已經獲得了一項任務,以解決SilverLight應用程序中的錯誤,但是我的身份認證知識充其量是基礎知識,因此我很困惑並尋求幫助。

問題是,如果用戶登錄到應用程序,然后打開另一個瀏覽器選項卡/窗口並從應用程序內部訪問URL,這是完全可以接受的,並且據我們所知系統可以正常工作。 當用戶從一個選項卡/窗口退出應用程序,然后嘗試繼續在另一選項卡/窗口上工作時,就會出現問題,在這種情況下,根據用戶的操作會拋出各種錯誤。

我們的應用程序中已經有一個計時器來檢測與數據庫的連接問題,因此我認為在這里檢查用戶是否經過身份驗證是一個好的開始,因此我檢查了AuthenticationService.User.Identity.IsAuthenticated ,但不幸的是,這始終是正確的。 因此,我研究並調試了代碼,並且Logout方法完成后,該屬性實際上設置為false,但是,當用戶在另一個選項卡/窗口中注銷后,調試應用程序時,情況似乎並非如此。

我已經在互聯網上進行了研究,但是我發現的所有類似問題都是由與您無關或完全不了解的問題引起的。

系統使用從FormsAuthentication繼承的身份驗證類,但是所有的LoginLogout函數都使用基本的WCF RIA AuthenticationService服務方法。

任何人都可以提出一些建議,因為這可能是問題所在嗎?

基本上注銷后,服務器將在服務器內存/會話狀態等中破壞您的會話。如果來自同一客戶端的新請求,服務器將讀取會話ID cookie,並嘗試將其與以下之一匹配現有的會話。 如果找不到該會話,那么我們將得到您面臨的異常。

有了SilverLight應用程序,這基本上是一個客戶端應用程序,除非真正需要,否則它將不向服務器發送任何請求(服務調用)。 我認為您應該向所有應用程序實例發送注銷消息,以便在其他任何地方的客戶端也注銷用戶。

也許此鏈接將為您提供幫助

Silverlight可以跨瀏覽器實例檢測或通信嗎?

從另一個JavaScript編寫一個JavaScript文件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM