簡體   English   中英

asp.net網站中靜態字段的問題

[英]Problem with static field in asp.net web-site

我目前正在開發一個ASP.NET網站。 在我的一個頁面中,我有一個靜態字段用於當前登錄用戶的CompanyId。

private static Guid _CompanyId = Company.Get().CompanyId;

Company.Get()返回有關當前登錄用戶的公司的信息,其中使用以下方法檢索UserId:

System.Web.Security.Membership.GetUser();

但是當以另一個用戶身份登錄時,在另一個公司, Company.Get()。CompanyId將從第一家公司返回Guid。

我是否錯過了使用靜態字段的觀點,還是有其他原因? 我通過將代碼隱藏中的_CompanyId的所有引用替換為Company.Get()。CompanyId來進行快速修復,但我修復了它,但這不是一個很好的解決方案。

靜態變量值在應用程序級別持久存在,因此跨用戶方式。 您應該使用會話來存儲您的信息。 在重新分配值,應用程序重新啟動等之前,靜態變量值不會更改。

您應該使用HttpContext.Current來存儲會話級變量。 靜態變量對Web應用程序中的所有會話都是可見的。

從字段定義中刪除static應該可以為您提供所需的內容。

暫無
暫無

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

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