0

如何检查应用程序状态中的重复项

我的问题场景:

我将用户名和密码存储在 application[""] 变量中。另一个用户输入我要检查每个用户的用户名密码。

我尝试了 for 循环,但很难找到计数..

你能帮我检查一下副本吗

     for (int j = 0; j < (int)System.Web.HttpContext.Current.Application["Userlogin"].ToString().Length - 1; j++)
                {
                    if (System.Web.HttpContext.Current.Application[i].ToString() == sKey)
                    {
                        Session["duplicateuser"] = "logout";
                        Returnmsg = "-3";
                    }
                }

但它显示了应用程序的字符串长度[]

预先感谢

4

1 回答 1

0

我将用户名和密码存储在 application[""] 变量中

哇,不要。应用程序状态在应用程序的所有用户之间共享。永远不要将用户特定的数据存储在应用程序状态中。请改用会话状态。


更新:

如果要检查并发用户访问,可以将用户集合存储到应用程序状态中,例如IEnumerable<string>. 然后您可以检查用户是否已经轻松登录:

public bool IsUserLoggedIn(string username, HttpApplicationStateBase application)
{
    var users = application["users"] as IEnumerable<string>;
    if (users == null)
    {
        users = new ConcurrentBag<string>();
        application["users"] = users;
    }

    return users.Any(u => u == username);
}
于 2012-11-26T09:42:20.137 回答