获取当前登录的成员用户ID

时间:2015-03-12 08:08:44

标签: c# asp.net asp.net-mvc visual-studio asp.net-mvc-4

我有一个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;

,查询或我做的不对。

谢谢。

2 个答案:

答案 0 :(得分:0)

对象currentUser包含属性UserName。尝试显示它以确定您拥有合适的用户是第一位的。

答案 1 :(得分:0)

检查IIS上的工作线程,它们可以交叉并将所有会话设置为同一个线程。通常,如果发生这种情况,他们将更改为最后一个登录的人。