0

我目前正在C#Web API上開發一個Web應用程序。Thead安全的靜態變量保持登錄用戶

我在想有一個靜態變量來跟蹤當前登錄的用戶。所以我不必在控制器和模型之間來回傳遞會話對象或用戶對象。

示例代碼:

using System; 

namespace Model.TwoScoopsOfASP 
{ 
    public class SessionHelper 
    { 
     [ThreadStatic] public static Member.Member loggedMember; 
    } 
} 

因爲我很新的這堆技術,所以我看不出是否有使用這種方法的任何大問題。 請幫我指出你能想到的任何大問題。

注意:我還沒有實現線程安全單例模式,所以請現在忽略它。 謝謝

+0

檢查了這個http://stackoverflow.com/questions/2692144 /保持跟蹤登錄用戶 – Vinoth

+0

@Vinoth感謝您的建議,但我不認爲這回答我的問題 –

+0

您必須依賴會話對象。這是最好的答案,否則你會如何在請求和提出請求的用戶之間建立關係?當然,你必須將會話包裝成一個聰明的類,它隱藏了你依賴會話包的事實。 –

回答

0

您必須依賴會話對象。這是最好的答案,否則你會如何在請求和提出請求的用戶之間建立關係?當然,你必須將會話包裝成一個聰明的類,它隱藏了你依賴會話包的事實。另一個aproach將使用令牌...但我不認爲你會想這樣做,因爲幕後會話只是另一種令牌...

+0

是的,確切地說。這個想法是把會話放入常見的線程靜態類中。這應該節省傳遞會話的努力。問題是這種方法是否存在潛在的問題。 –