2010-01-07 67 views
1

我的業務層\數據訪問庫正在被Web應用程序和wcf服務使用。我需要設置每個請求的當前用戶上下文這兩個應用程序,其中將包括用戶ID,IP,應用類型等等等等設置用戶上下文

圖書館顯然是不知道是什麼類型的應用程序在使用它的。

現在我不能保持在一個靜態變量此信息,因爲後續請求會覆蓋舊的值。而且我不想將這個變量傳遞給每個需要它的類,例如日誌記錄組件。

這可能是一個愚蠢的問題,但有一種方式來創建像OperationContext.Current或線程級別的靜態變量HttpContext.Current(的東西,將在當前請求結束消失)

或者我可能能夠實現此功能的其他方式?

+0

什麼是你的語言中的任何地方訪問特定的對象?你能用它來標記問題嗎? – KLE 2010-01-07 11:49:39

+0

對不起..是的.NET應用 是ASP .NET和WCF – shake 2010-01-07 11:51:34

回答

0

感謝所有幫助,但我用在這個環節上提出的解決方案:http://elegantcode.com/2009/01/17/abstracting-request-state/

這樣我不必擔心線程靜態變量的,因爲線程池的每個請求週期結束時保留它們的值並且仍然設法保留是一個線程,其中包括用戶憑證

+0

現在/是/是有趣的;謝謝。我刪除了我的不正確答案。 – 2010-01-09 13:46:26