3
我可以寫下如下內容(在ASP.NET網頁中使用的程序集中)嗎?寫這個是線程安全的嗎?
public static string CurrentAuthenticatedUserFromHttpRequest
{
get
{
if (HttpContext.Current.Items["AuthUser"] == null)
{
return string.Empty;
}
return HttpContext.Current.Items["AuthUser"].ToString(); //set in "TryAuthenticate"
}
}
它將成爲一個靜態只讀屬性。該值(到HttpContext.Current.Items [「AuthUser」])通過一個httphandler進行設置。
只是想知道這是如何會在多次請求執行。當多個用戶試圖訪問同一個屬性(在多個請求中)時,即使有大量請求進入時,數據是否準確?
HttpContext的是每個HTTP請求,你打算怎麼反正用戶之間共享數據? – 2013-04-28 13:47:32
也許我可以誤會,但是當用戶向服務器發出請求時,創建appdomain之後,然後創建HttpContext類,該類包含特定於當前應用程序請求的對象,如HttpRequest和HttpResponse對象。 HttpRequest對象包含有關當前請求的信息。 – StringBuilder 2013-04-28 13:50:51
我應該問一個更好的方法。道歉。我想讓這個屬性始終返回當前的用戶信息。我不想在多個請求中分享價值。我們討論了在靜態屬性中使用HttpContext.Items(這不是線程安全的)。 – user203687 2013-04-28 13:51:41