我有一个asp.net网络应用程序,当同一网络上有两个或更多用户登录时,我遇到了问题。我使用查询来检索帐户详细信息,有时会检索在同一网络上登录的其他人的详细信息。
实施例
John is Lisa使用不同的设备和不同的帐号在同一个WiFi上登录。
有时,Lisa的帐户详细信息显示为John关于其帐户的详细信息,而且lisa也是如此。
这是查询的示例
// Determine the currently logged on user's UserId value
MembershipUser currentUser = Membership.GetUser();
Guid currentUserId = (Guid)currentUser.ProviderUserKey;
// Retrieve profile Name
string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
string selectSql = "SELECT (FirstName + ' ' + LastName) FROM User_Profile WHERE UserId = (@UserId)";
using (SqlConnection myConnection = new SqlConnection(connectionString))
{
myConnection.Open();
SqlCommand myCommand = new SqlCommand(selectSql, myConnection);
myCommand.Parameters.AddWithValue("@UserId", currentUserId);
Label1.Text = myCommand.ExecuteScalar().ToString();
myConnection.Close();
}
我不确定这个问题是否来自
MembershipUser currentUser = Membership.GetUser();
Guid currentUserId = (Guid)currentUser.ProviderUserKey;
,查询或我做的不对。
谢谢。
答案 0 :(得分:0)
对象currentUser包含属性UserName。尝试显示它以确定您拥有合适的用户是第一位的。
答案 1 :(得分:0)
检查IIS上的工作线程,它们可以交叉并将所有会话设置为同一个线程。通常,如果发生这种情况,他们将更改为最后一个登录的人。