会话使用asp.net与不同的登录冲突 [英] Session Conflicts with different logins using asp.net

查看:68
本文介绍了会话使用asp.net与不同的登录冲突的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,



i面对使用asp.net进行不同登录的会话冲突



当两个用户访问同一页面,在回发期间user1获取user2页面。



登录按钮代码





 受保护  void  btn_log_loginin_Click(对象发​​件人,EventArgs e)
{
尝试
{
_objMasters = new TRANSACTIONBAL();
_objMasters.ScreenInd = TRANSACTION.userlogin;
_objMasters.loginname = txt_log_username.Text;
_objMasters.password = txt_log_password.Text;
_objDataSet =(DataSet)_objMasters.fnGetData();
if (_objDataSet!= null
{
roleid = Convert.ToInt32(_objDataSet.Tables [ 0 ]。行[ 0 ] [ 1 ]);
}
如果(roleid == 0
{
loginmsgdsply.Text = 无效的登录/非活动成员;
}
其他 如果(roleid == 1
{
会话[ username] = txt_log_username.Text;
会话[ Empid] = _objDataSet.Tables [ 0 ]。行[ 0 ] [ 0 ];
会话[ roleid] = _objDataSet.Tables [ 0 ]。行[ 0 ] [ 1 ];
会话[ Jobid] = _objDataSet.Tables [ 0 ]。行[ 0 ] [ 2 ];
会话[ JoinDate] = _objDataSet.Tables [ 0 ]。行[ 0 ] [ 3 ];

Response.Redirect( 〜/ Employeedirectory.aspx);
}
其他 如果(roleid!= 0 && roleid!= 1
{
if (_objDataSet.Tables [ 0 ]。Rows.Count > 0
{
会话[ username ] = txt_log_username.Text;
会话[ Empid] = _objDataSet.Tables [ 0 ]。行[ 0 ] [ 0 ];
会话[ roleid] = _objDataSet.Tables [ 0 ]。行[ 0 ] [ 1 ];
会话[ Jobid] = _objDataSet.Tables [ 0 ]。行[ 0 ] [ 2 ];
会话[ JoinDate] = _objDataSet.Tables [ 0 ]。行[ 0 ] [ 3 ];

Response.Redirect( 〜/ Default.aspx);
}
else
{
loginmsgdsply.ForeColor = Color.Red;
loginmsgdsply.Text = 无效登录;
}
}
}
catch (例外情况)
{
// LogError(QuestionBank.aspx,fnLoadPage,DateTime.Now,ex.Message.ToString());
// Response.Redirect(Error.aspx,false);
}
}

解决方案

Hey Raghupathirao,



(我会使用开启roleid)



无论如何,看起来它可能与你的功能有关:

< pre lang =c#> _ objDataSet =(DataSet)_objMasters.fnGetData();





你确定你是对的吗? _objDataSet 回到那个电话?



* btw,我会用switch-caseon roleid那里



干杯,

Edo

HI,



最后使用

   {
if (_ objMasters!= null
{
_objMasters = null ;
}
}

在代码中阻塞并在那里处理 _objMasters 对象并为该对象分配null。



这可能会解决您的问题。



谢谢


hi all,

i faced Session Conflicts with different logins using asp.net

When two users access the same page, during post back user1 gets user2 page.

Login Button Code


protected void btn_log_loginin_Click(object sender, EventArgs e)
   {
       try
       {
           _objMasters = new TRANSACTIONBAL();
           _objMasters.ScreenInd = TRANSACTION.userlogin;
           _objMasters.loginname = txt_log_username.Text;
           _objMasters.password = txt_log_password.Text;
           _objDataSet = (DataSet)_objMasters.fnGetData();
           if (_objDataSet != null)
           {
               roleid = Convert.ToInt32(_objDataSet.Tables[0].Rows[0][1]);
           }
           if (roleid == 0)
           {
               loginmsgdsply.Text = "Invalid Login/Inactive Member";
           }
           else if (roleid == 1)
           {
               Session["username"] = txt_log_username.Text;
               Session["Empid"] = _objDataSet.Tables[0].Rows[0][0];
               Session["roleid"] = _objDataSet.Tables[0].Rows[0][1];
               Session["Jobid"] = _objDataSet.Tables[0].Rows[0][2];
               Session["JoinDate"] = _objDataSet.Tables[0].Rows[0][3];

               Response.Redirect("~/Employeedirectory.aspx");
           }
           else if (roleid != 0 && roleid != 1)
           {
               if (_objDataSet.Tables[0].Rows.Count > 0)
               {
                   Session["username"] = txt_log_username.Text;
                   Session["Empid"] = _objDataSet.Tables[0].Rows[0][0];
                   Session["roleid"] = _objDataSet.Tables[0].Rows[0][1];
                   Session["Jobid"] = _objDataSet.Tables[0].Rows[0][2];
                   Session["JoinDate"] = _objDataSet.Tables[0].Rows[0][3];

                  Response.Redirect("~/Default.aspx");
               }
               else
               {
                   loginmsgdsply.ForeColor = Color.Red;
                   loginmsgdsply.Text = "Invalid Login";
               }
           }
       }
       catch (Exception ex)
       {
           //LogError("QuestionBank.aspx", "fnLoadPage", DateTime.Now, ex.Message.ToString());
           //Response.Redirect("Error.aspx", false);
       }
   }

解决方案

Hey Raghupathirao,

(I would use switch on "roleid")

Anyway, is looks like it might be something with your function:

_objDataSet = (DataSet)_objMasters.fnGetData();



did you make sure that you get the right _objDataSet back on that call?

* btw, I would use "switch-case" on "roleid" there

Cheers,
Edo


HI,

Use a

finally{ 
   if(_objMasters != null)
   {
     _objMasters = null;
   }
 }

block in your code and dispose your _objMasters object there and assign null to that object.

This may resolve your problem.

Thanks


这篇关于会话使用asp.net与不同的登录冲突的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆