ASP.NET之Session实现用户登录
首先创建三个Web窗体并分别命名为 CratWeb ShopCart UserLogin
1、在 CratWeb.aspx 中操作如下代码
<form id="form1" runat="server">
<div>
<asp:CheckBox ID="CheckBox1" runat="server" Text="瓜子" /> <br />
<asp:CheckBox ID="CheckBox2" runat="server" Text="花生" /><br />
<asp:CheckBox ID="CheckBox3" runat="server" Text="辣条" /><br />
<asp:CheckBox ID="CheckBox4" runat="server" Text="天然狗粮,单身狗吃了毛色好" /><br />
<asp:CheckBox ID="CheckBox5" runat="server" Text="水果" /> <br />
<asp:Button ID="btnAddTocart" runat="server" Text="将所选商品添加到购物车" OnClick="btnAddTocart_Click" Width="268px" />
<asp:Button ID="btnShowcart" runat="server" Text="显示商品" OnClick="btnShowcart_Click" />
<asp:Button ID="btnExit" runat="server" Text="退出登录 " OnClick="btnExit_Click" />
<br />
<asp:Literal ID="ItaMsg" runat="server"></asp:Literal>
</div>
</form>
2、在 CratWeb.aspx.cs 中操作如下代码
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
List<string> cart = new List<string>();
Session["cart"] = cart;
}
if (Session["CurrentUser"] !=null)
{
this.ItaMsg.Text = "终于等到你 ❤ : "+Session["CurrentUser"].ToString();
}
else
{
this.ItaMsg.Text = "请您先登录";
}
}
protected void btnShowcart_Click(object sender, EventArgs e)
{
//首先判断用户是否登录
if (Session["CurrentUser"] == null)
{
Response.Redirect("UserLogin.aspx");
}
//重定向
Response.Redirect("ShopCart.aspx");
}
protected void btnAddTocart_Click(object sender, EventArgs e)
{
if (Session["CurrentUser"] == null)
{
Response.Redirect("UserLogin.aspx");
}
else
{
foreach (Control item in form1.Controls)
{
if (item is CheckBox)
{
CheckBox ckb = (CheckBox)item;
if (ckb.Checked)
{
// Session["cart"] 为object 类型 所以得转换成list
((List<string>)Session["cart"]).Add(ckb.Text);
}
}
}
}
this.btnAddTocart.Text = "添加成功";
}
protected void btnExit_Click(object sender, EventArgs e)
{
Session.Abandon();//清除Session
this.ItaMsg.Text = "您还没有登录哟";
}
}
3、在 ShopCart.aspx.cs 中操作如下代码
protected void Page_Load(object sender, EventArgs e)
{
//取出对象集合,遍历后显示
List<string> cart = (List<string>)Session["cart"];
string info = string.Empty;
foreach (string item in cart)
{
info += item + " ";
}
Response.Write("您选得商品为:" + info + "<br/>");
}
4、在 UserLogin.aspx中操作如下代码
<form id="form1" runat="server">
<div>
<table>
<tr>
<th colspan="2">
用户登录
</th>
</tr>
<tr>
<td>
用户名:
</td>
<td>
<asp:TextBox ID="txtUserName" runat="server" Width="150px"></asp:TextBox>
</td>
</tr>
<tr>
<td>
密 码:
</td>
<td>
<asp:TextBox ID="txtPwd" runat="server" TextMode="Password" Width="150px"></asp:TextBox>
</td>
</tr>
<tr>
<td colspan="2" align="right">
<asp:Literal ID="lInfo" runat="server"></asp:Literal>
<asp:Button ID="btnLogin" runat="server" Text="登录" OnClick="btnLogin_Click" />
</td>
</tr>
</table>
</div>
</form>
5、在 UserLogin.aspx.cs 中操作如下代码
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnLogin_Click(object sender, EventArgs e)
{
//验证信息
//查询用户信息,验证用户名和密码是否正确
if (this.txtUserName.Text.Trim() == "admin" && this.txtPwd.Text.Trim() == "12345")
{
//保存用户登录信息
Session["CurrentUser"] = this.txtUserName.Text.Trim();
//登录成功后跳转到首页
Response.Redirect("CradWeb.aspx");
}
else
{
this.lInfo.Text = "用户名或密码错误!";
}
}
6、将在 CratWeb.aspx 设置为起始页
效果图如下:
点击单选框进行商品选择会跳转到登录页面
登录成功之后 ,再次跳转到 CratWeb.aspx
有所不足,请大家指正,谢谢大家了。