Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 会话变量冲突_C#_Asp.net_Session_Session Variables - Fatal编程技术网

C# 会话变量冲突

C# 会话变量冲突,c#,asp.net,session,session-variables,C#,Asp.net,Session,Session Variables,我正在使用会话变量存储登录的用户id,该会话变量稍后在应用程序中用于显示/隐藏应用程序中的某些表单。 这工作正常,根据登录的用户,在菜单中启用/禁用所需的表单。 问题有时是在使用系统时突然出现其他用户的菜单和名称,例如: User1可以访问表格a、b、c 及 User2可以访问表单x、y、z。 当User1登录并使用其表单时,突然可以访问User2的表单,并在顶部屏幕上显示其显示的用户名: 以User2身份登录用户。 我假设这是因为session变量获取介于两者之间的User2值。两个用户使用不

我正在使用会话变量存储登录的用户id,该会话变量稍后在应用程序中用于显示/隐藏应用程序中的某些表单。 这工作正常,根据登录的用户,在菜单中启用/禁用所需的表单。 问题有时是在使用系统时突然出现其他用户的菜单和名称,例如:

User1可以访问表格a、b、c

User2可以访问表单x、y、z。

User1
登录并使用其表单时,突然可以访问
User2
的表单,并在顶部屏幕上显示其显示的用户名:
以User2身份登录用户。
我假设这是因为session变量获取介于两者之间的
User2
值。两个用户使用不同的客户端计算机

请建议如何解决此问题。
下面的代码在登录表单中用于收集会话变量的值

 var objUser = con.PR_Login(txtUser.Text, txtPass.Text);
                foreach(var user in objUser)
                {
                    //HdnuserType.Value=user.
                    string ENCRYPT_VALUES = user.UserID + "|" + user.UserName + "|" + user.UserRole + "|" + user.CompID + "|" + "|" + user.DeptID + "|" + "|" + user.CntrID + "|" + user.CompanyName;
                    ENCRYPT_USER_DTL=ENDE.Encrypt(ENCRYPT_VALUES);

                    Session["EN_USER_DTL"] = ENCRYPT_USER_DTL;
                    Session["UserId"] = user.UserID;
                    Session["LOGINNAME"] = user.UserName;
                    Session["UserRole"] = user.UserRole;
                    Session["CompID"] = user.CompID;
                    Session["CntrID"] = user.CntrID;
                    Session["DeptID"] = user.DeptID;
                    Session["CompName"] = user.CompanyName;
                    HdnuserType.Value = user.UserRole;
                    Session["EmailID"] = user.Email;
                    s_CompID = Convert.ToInt32(user.CompID);
                    s_UserName = user.UserName.ToString();
                }

These variables are checked in the masterpage, accordingly the menus are displayed

 ENCRYPT_VALUE = Login.ENCRYPT_USER_DTL.ToString();
                    DECRYPT_VALUE = ENDE.Decrypt(ENCRYPT_VALUE.ToString());
                    string[] USER_DETAILS = DECRYPT_VALUE.ToString().Split(new char[] { '|' });
                    txtusername.Text = USER_DETAILS[1].ToString();
                     if (USER_DETAILS[2] == "Sadmin")
                    {
                        sadminmenu.Visible = true;
                    }
                    if (USER_DETAILS[2] == "Admin")
                    {
                        adminmenu.Visible = true;
                    }

根据您所说,User1和User2的值可能存储在静态变量中。您应该检查或调试该问题


最好的,thanhnt

您的代码似乎有问题。然而,我们不能帮助,除非我们有。否则,我们只是盲目猜测。会话创建时显示代码并使用(表单)这是我的代码,下面的代码用于登录表单中,我从中获取会话变量的值