Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 由多个用户共享的类实例_C#_Asp.net_Azure - Fatal编程技术网

C# 由多个用户共享的类实例

C# 由多个用户共享的类实例,c#,asp.net,azure,C#,Asp.net,Azure,我有一个托管在Azure上的web应用程序,它在用户之间共享来自SQL Azure数据库中名为Message的表中的消息。我的项目包含一个跟踪当前用户信息的类,名为CurrentUser.cs。它包含诸如Username、RoomID、JoinTime等属性。当其他用户登录时,我很难理解这个类会发生什么。我最初认为每个用户都有自己的CurrentUser实例,其他人无法访问。以下是我看到的: 如果UserA登录,他们可以发布消息,并且消息会显示为他们的用户名。当UserB登录时,他们还可以使用自

我有一个托管在Azure上的web应用程序,它在用户之间共享来自SQL Azure数据库中名为
Message
的表中的消息。我的项目包含一个跟踪当前用户信息的类,名为
CurrentUser.cs
。它包含诸如
Username
RoomID
JoinTime
等属性。当其他用户登录时,我很难理解这个类会发生什么。我最初认为每个用户都有自己的
CurrentUser
实例,其他人无法访问。以下是我看到的:

如果
UserA
登录,他们可以发布消息,并且消息会显示为他们的用户名。当
UserB
登录时,他们还可以使用自己的用户名发布消息。如果
UserA
UserB
登录后发布消息,则他们的消息显示为
UserB
的用户名。这使我相信
UserA
CurrentUser.cs
文件在
UserB
登录时被覆盖。这怎么可能?我想每次有人访问我的站点时,就会出现一个新的
CurrentUser.cs
实例。不是这样吗?我的所有用户是否都与我当前拥有的类共享同一个
CurrentUser

编辑

我在
CurrentUser
中有一个构造函数,它在应用程序加载时设置属性。我从不调用
CurrentUser=new CurrentUser()
或任何东西。我的问题更多的是关于每个用户是否都有自己版本的
CurrentUser.cs
。我的印象是,我不必创建
CurrentUser
的实例,因为每个访问者都有自己的实例

    static CurrentUser()
    {
        MembershipUser membershipUser = Membership.GetUser();

        _username = membershipUser.UserName;
        _providerKey = (Guid)membershipUser.ProviderUserKey;

        UserProfile profile = UserProfileController.GetByProviderKey(_providerKey);

        _userID = profile.UserID;
        _roomID = profile.RoomID;
        _joinRoomTime = DateTime.Now.ToUniversalTime();

        DisplayedMessages = new List<Message>();
    }
static CurrentUser()
{
MembershipUser MembershipUser=Membership.GetUser();
_用户名=membershipUser.username;
_providerKey=(Guid)membershipUser.ProviderUserKey;
UserProfile profile=UserProfileController.GetByProviderKey(\u providerKey);
_userID=profile.userID;
_roomID=profile.roomID;
_joinRoomTime=DateTime.Now.ToUniversalTime();
DisplayedMessages=新列表();
}
编辑2


我的属性是静态的,但我的类不是。也许这与此有关?

如果您在此处发布您的类定义,将会很有帮助。问题中有太多没有代码的变量。您的类可以是静态的,或者存储在静态变量中,等等。答案在于你的代码。我们无法推测您可能犯了什么错误。您必须向我们展示CurrentUser的实例化位置。您需要为每个用户提供实例类和实例成员。静态成员在所有实例之间共享-这是您的problem@T.S.-我以为这很简单。非常感谢。