【发布时间】:2013-12-30 15:31:37
【问题描述】:
我试图只从一个项目中注销,但问题是当我一次在浏览器中运行两个 Web 项目时。在两者都登录后,我单击第一个项目的注销按钮,但两个项目的会话在任何一个注销按钮单击时自动结束。
我使用Session.Abandon();注销。
我使用的是 Visual Studio 2012,我可以只退出一个项目吗?
这是我的登录代码
protected void btnLogin_Click(object sender, EventArgs e)
{
con.Open();
qry = "select * from UserTable where Uname='" + txtUname.Text + "' and Pwd='" + txtPwd.Text + "' ";
com = new SqlCommand(qry, con);
dr = com.ExecuteReader();
if (dr.Read())
{
Session["UName"] = txtUname.Text;
Session["Pwd"] = txtPwd.Text;
Session["Name"] = dr["Name"].ToString();
Session["Mail"] = dr["Mail"].ToString();
if (chkStayLogin.Checked)
{
Response.Cookies["rsstl"]["stul_"] = crypt.Encrypt(uname);
Response.Cookies["rsstl"]["stpl_"] = crypt.Encrypt(pwd);
Response.Cookies["rsstl"].Expires = DateTime.Now.AddMonths(12);
}
else
{
Response.Cookies["rsstl"].Expires = DateTime.Now.AddDays(-1);
}
con.Close();
Response.Redirect("Home.aspx");
}
else
{
lblLogin.Visible = true;
lblLogin.Text = "Enter Valid User Name And Password";
}
con.Close();
}
还有我的登出代码
protected void btnLogout_Click(object sender, EventArgs e)
{
HttpCookie cki = new HttpCookie("rsstl");
cki.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(cki);
Session.Abandon();
Response.Redirect("Home.aspx");
}
我在其他项目中使用相同的代码。
【问题讨论】:
-
这完全取决于您登录网站的方式。请上传登录代码。如果你使用form authentication,请同时在web.config中发布authentication标签。
-
现在我在问题中添加了登录和注销代码
-
如何区分两个站点之间的登录?它们是否托管相同的域名,例如 site1.mysite.com 和 site2.mysite.com?这是单点登录吗? 这是一个学校项目吗?
-
对不起,先生,我没有提到我正在本地主机上尝试这个。第一个项目是我的暑期培训项目(在线火车票预订),第二个是我的最后一年项目(在线考试系统),当我将这两个项目托管在同一个域上时会有什么问题吗?