我有一个asp.net网站和一个类库作为项目参考。在类库中,我有一些静态方法的公共类。当用户登录他们的帐户时,我会调用其中一个静态方法来加载与用户相关的信息。我有一些实例,当我以用户A登录时,我能够看到与用户B相关的信息。这是因为静态方法吗?
答案 0 :(得分:8)
不,这是因为静态变量。这些是由整个AppDomain
共享的 - 在这种情况下,这几乎意味着“该机器上的整个网站”。
在没有任何更多信息的情况下很难确切地知道你应该做什么,但我强烈怀疑你只是将用户信息存储在静态变量中,这是永远将是正确的方式去。
你如何管理用户会话取决于你,并且毫无疑问已经写了大量文本 - 但使用静态变量将导致你看到的问题。
答案 1 :(得分:0)
那可能是,我必须看到你的代码确定,信息是否也存储为静态?那么它是正确的,因为静态在实例之间共享