.net mvc 的session代码
时间: 2023-07-10 22:10:44 浏览: 143
以下是 .NET MVC 中使用 Session 的示例代码:
1. 配置 Session
在应用程序的 Web.config 文件中,可以添加如下配置来指定 Session 的超时时间(单位为分钟):
```xml
<system.web>
<sessionState timeout="20" />
</system.web>
```
2. 创建 Session
在控制器的 Action 方法中,可以使用 Session 对象来创建和管理会话状态:
```csharp
public ActionResult Login(string username, string password)
{
// 验证用户名和密码
if (IsValidUser(username, password))
{
// 在 Session 中存储用户信息
Session["username"] = username;
Session["isAuthenticated"] = true;
// 跳转到首页
return RedirectToAction("Index", "Home");
}
else
{
// 显示错误信息
ViewBag.ErrorMessage = "用户名或密码错误";
return View();
}
}
```
3. 读取 Session
在控制器的 Action 方法中,可以使用 Session 对象来读取会话状态:
```csharp
public ActionResult Index()
{
// 检查用户是否已登录
if (Session["isAuthenticated"] != null && (bool)Session["isAuthenticated"])
{
// 读取用户信息
var username = Session["username"] as string;
// 显示欢迎消息
ViewBag.Message = "欢迎您," + username + "!";
}
else
{
// 跳转到登录页面
return RedirectToAction("Login", "Account");
}
return View();
}
```
4. 删除 Session
在控制器的 Action 方法中,可以使用 Session.Remove() 方法来删除一个键值对:
```csharp
public ActionResult Logout()
{
// 清除 Session
Session.Remove("username");
Session.Remove("isAuthenticated");
// 跳转到登录页面
return RedirectToAction("Login", "Account");
}
```
需要注意的是,Session 对象可能为 null,因此在读取 Session 对象时需要进行 null 检查。此外,Session 对象存储的数据类型是 object,因此在读取时需要进行类型转换。
阅读全文