做一个asp.net选课登陆界面,运用cookie对象和session对象 代码是什么
时间: 2024-10-18 20:07:27 浏览: 21
在ASP.NET中创建一个登录页面并利用Cookie和Session对象保存用户信息,首先需要设置身份验证机制。这里是一个基本的示例代码,我们将使用FormsAuthentication来进行登录管理:
```csharp
using System;
using System.Web;
using System.Web.Security;
public partial class _Default : Page
{
protected void ButtonLogin_Click(object sender, EventArgs e)
{
// 验证用户名和密码
string username = TextBoxUsername.Text;
string password = TextBoxPassword.Text;
// 这里假设有一个UserValidator方法来检查用户名和密码是否有效
if (UserValidator(username, password))
{
// 使用FormsAuthentication进行登录
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
1, // 版本号
username, // 用户名
DateTime.Now, // 发放时间
DateTime.Now.AddMinutes(30), // 过期时间
false, // 是否记住我
""); // 附加信息
string encTicket = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket);
Response.Cookies.Add(cookie);
// 设置Session存储用户状态
Session["UserName"] = username;
// 跳转到选课页面
Response.Redirect("CourseSelection.aspx");
}
else
{
// 登录失败,显示错误消息
LabelErrorMessage.Text = "用户名或密码错误";
}
}
protected void Page_Load(object sender, EventArgs e)
{
// 检查用户是否已经通过Cookie或Session登录
string userNameFromCookie = Request.Cookies[FormsAuthentication.FormsCookieName] != null ? FormsAuthentication.Decrypt(Request.Cookies[FormsAuthentication.FormsCookieName].Value).Name : "";
string userNameFromSession = Session["UserName"] != null ? Session["UserName"].ToString() : "";
if (!string.IsNullOrEmpty(userNameFromCookie) || !string.IsNullOrEmpty(userNameFromSession))
{
// 用户已登录,跳转到选课页面
Response.Redirect("CourseSelection.aspx");
}
}
}
```
在这个例子中,`ButtonLogin_Click`事件处理程序用于处理登录请求,如果验证成功,则将用户信息加密成Cookie并添加到响应,同时存储Session中。`Page_Load`事件会在每个页面加载时检查是否有登录信息。
阅读全文