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

ただし、application[]の文字列の長さを示しています。

少し早いですがお礼を

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 に答える