簡體   English   中英

Asp.net MVC多個用戶會話/用戶模擬

[英]Asp.net MVC Multiple User Sessions / User Impersonation

大家好,我可以幫忙管理一些用戶會話模擬問題

我在我的應用程序中實現了角色架構,為簡單起見,假設我有2個角色

  • 系統管理員
  • 普通用戶

當用戶登錄系統時,他們將被重定向到其特定的模塊EX:如果用戶是管理員,則將其重定向到admin部分,到目前為止,這完全沒有問題,僅僅是為您提供了一些背景信息。

系統管理員的功能之一是能夠模擬普通用戶帳戶,使他們可以以普通用戶的身份執行任何操作,就像我做的那樣,我只是簡單地登錄了系統管理員並以用戶身份進行重新身份驗證,問題是當同一個管理員希望同時進入多個帳戶時,按照該方法,我用最新信息覆蓋cookie會話,因此,例如,如果我有2個標簽,而我決定轉到上一個標簽當我刷新選項卡時,系統管理員將獲得的信息是最新的,因此我在考慮是否有可能嘗試混合無cookie會話以將所有信息都輸入到url中,從而在理論上具有多個asp.net會話。

所以問題是,如果可能的話,如果系統默認使用Cookie存儲,那么我是否可以同時運行兩個系統? 我可以默認使用cookie系統並通過編程設置無cookie系統嗎?

我只是不想手動在所有操作中傳遞用戶ID並自己通過查詢字符串保留該信息,因為在此階段,這實際上將破壞我的代碼,並且我將不得不重構系統的很大一部分

任何意見將完全歡迎!

在同一瀏覽器中無法同時打開兩個身份。

我想到了兩種選擇:

  • 要求管理員打開其他瀏覽器或與其他用戶使用同一瀏覽器(對於Chrome),以同時操作兩個身份。
  • 更改您的應用程序的方法:無需更改身份,而是向管理員提供用戶下拉菜單。 該操作將使用該用戶來檢索數據或執行任何操作。 (當然取決於您的應用程序)

這看起來很老了,但是如果有人想知道的話,您可以在應用程序生命周期的AuthenticateRequest事件中用GenericIdentityGenericPrincipal或您自己的實現IPrincipalIIdentity接口的類替換用戶的身份。 您如何確定用於模擬所有窗口/標簽頁的會話變量(我傾向於盡可能避免使用這些變量),或者確定用於創建特定標簽頁/ Windows充當其他用戶。 在請求持續時間內設置HttpContext.Current.User是臨時的,並且不會更改其FormsAuthentication cookie。

暫無
暫無

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

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