asp.net网站中静态字段的问题

ssh*_*how 4 .net c# asp.net

我目前正在开发一个ASP.NET网站.在我的一个页面中,我有一个静态字段用于当前登录用户的CompanyId.

private static Guid _CompanyId = Company.Get().CompanyId;
Run Code Online (Sandbox Code Playgroud)

Company.Get()返回有关当前登录用户的公司的信息,其中使用以下方法检索UserId:

System.Web.Security.Membership.GetUser();
Run Code Online (Sandbox Code Playgroud)

但是当以另一个用户身份登录时,在另一个公司,Company.Get().CompanyId将从第一家公司返回Guid.

我是否错过了使用静态字段的观点,还是有其他原因?我通过将代码隐藏中的_CompanyId的所有引用替换为Company.Get().CompanyId来进行快速修复,但我修复了它,但这不是一个很好的解决方案.

Muh*_*tar 7

静态变量值在应用程序级别持久存在,因此跨用户方式.您应该使用会话来存储您的信息.在重新分配值,应用程序重新启动等之前,静态变量值不会更改.