代码之家  ›  专栏  ›  技术社区  ›  sshow Darron Smith

ASP.NET网站中的静态字段有问题

  •  3
  • sshow Darron Smith  · 技术社区  · 15 年前

    我目前正在一个ASP.NET网站上工作。在我的一个页面中,我为当前登录用户的companyID提供了一个静态字段。

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

    company.get()返回有关当前登录用户的公司的信息,在该信息中使用以下方法检索用户ID:

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

    但是当以另一个用户的身份登录时,在安托弗公司, company.get().companyID 将从第一个公司返回guid。

    我是否错过了使用静态字段的要点,或者这还有其他原因? 我修改了它,替换了所有引用 我公司 在我的代码后面 company.get().companyID 但这并不是一个很好的解决方案。

    3 回复  |  直到 13 年前
        1
  •  6
  •   Muhammad Akhtar    15 年前

    静态变量值在应用程序级别保持不变,因此在用户方面也是如此。您应该使用会话来存储您的信息。静态变量值在重新分配该值、应用程序重新启动等之前不会更改。

        2
  •  3
  •   Joe Caffeine    15 年前

    您应该使用httpcontext.current来存储会话级变量。静态变量对Web应用程序中的所有会话都可见。

        3
  •  1
  •   Andy Gaskell    15 年前

    去除 static 从你的领域定义应该给你你想要的。