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

Asp.net mvc 如何在mvc asp.net中检查重复的应用程序状态,asp.net-mvc,Asp.net Mvc,如何在应用程序状态下检查副本 我的问题场景: 我将用户名和密码存储在应用程序[“”]变量中。 另一个用户输入我要为每个用户检查的用户名密码 我试着打循环,但很难找到计数 你能帮我查一下副本吗 for (int j = 0; j < (int)System.Web.HttpContext.Current.Application["Userlogin"].ToString().Length - 1; j++) {

如何在应用程序状态下检查副本

我的问题场景:

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

我试着打循环,但很难找到计数

你能帮我查一下副本吗

     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";
                    }
                }
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)
{
会话[“duplicateuser”]=“注销”;
Returnmsg=“-3”;
}
}
但它显示应用程序的字符串长度[]

提前感谢

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

哇,别这样。应用程序状态在应用程序的所有用户之间共享。切勿在应用程序状态下存储用户特定的数据。改用会话状态


更新:

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

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);
}
public bool IsUserLoggedIn(字符串用户名,HttpApplicationStateBase应用程序)
{
var users=应用程序[“users”]作为IEnumerable;
如果(用户==null)
{
用户=新的ConcurrentBag();
应用程序[“用户”]=用户;
}
返回users.Any(u=>u==username);
}

我尝试进行并发用户登录检查,因为我仅在用户已经是他们的用户时才尝试存储用户名,所以我曾经注销过两个用户。在这种情况下,您应该将一组用户存储到应用程序状态。我已经更新了我的答案以提供一个例子。非常感谢您的回复。你能详细解释一下吗,你的意思是我必须使用IList而不是应用程序,还是必须在应用程序[]状态下使用IList,如果是,请解释一下。。。