如何在mvc asp.net中检查应用程序状态中的重复项

时间:2012-11-26 09:36:57

标签: asp.net-mvc

如何检查应用程序状态中的副本

我的问题场景:

我将用户名和密码存储在应用程序[“”]变量中。 另一个用户输入我想要检查每个用户的用户名密码。

我试过循环但很难找到计数..

你可以帮我查一下

吗?
     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";
                    }
                }

但它显示了应用程序[]

的字符串长度

先谢谢

1 个答案:

答案 0 :(得分:0)

  

我将用户名和密码存储在应用程序[“”]变量

哇,不要。应用程序状态由应用程序的所有用户共享。切勿将用户特定数据存储在应用程序状态改为使用会话状态。


更新:

如果要检查并发用户访问权限,可以将一组用户存储到应用程序状态,例如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);
}