gpt4 book ai didi

asp.net-mvc-3 - 重定向到新页面后 session 变量为空

转载 作者:行者123 更新时间:2023-12-01 23:58:05 26 4
gpt4 key购买 nike

MVS 2012SQL 服务器 2008 R2

我有一个对象正在使用 session 包装器存储在 session 中。在登录期间,我初始化对象并适本地设置 session 。对用户进行身份验证后,我将用户重定向到用户索引页面。用户被重定向到索引页面,但 session 变量不为空。我不确定为什么会这样。这是我正在做的示例代码。

这是我的网络配置设置。 如果我注释掉这个 Web 配置部分并再次运行该应用程序,它运行良好。

<sessionState mode="SQLServer" allowCustomSqlDatabase="true" timeout="60" cookieless="false" sqlConnectionString="Data Source=(****);Initial Catalog=data1;User ID=****;Password=****;Integrated Security=True" />

这是包裹在session中的对象

 public class CurrentRequest
{
public int UserId { get; set; }
public string Role { get; set; }
}

这是 session 包装器

 public static CurrentRequest currentRequest
{
get
{
if (HttpContext.Current.Session["request"] != null)
{
return (CurrentRequest)HttpContext.Current.Session["request"];
}
else
{
return null;
}
}
set
{
HttpContext.Current.Session["request"] = value;
}
}

这里我正在检查角色并将用户重定向到适当的页面

CurrentRequest currentRequest = new CurrentRequest();
SessionWrapper.currentRequest = currentRequest;
int userId = login.GetUserId(model.UserName, true);
SessionWrapper.currentRequest.UserName = model.UserName;
string[] roles = Roles.GetRolesForUser(model.UserName);
if (roles.Count() > 0)
{
string aRole = roles[0];
switch (aRole)
{
case "Admin":
SessionWrapper.currentRequest.Role = aRole;
SessionWrapper.currentRequest.UserId = userId;
.
.

上面的 session 变量设置正确,我将用户重定向到用户索引页面

return RedirectToAction("Index", "Users");
case "User":

在用户 Controller 上,我正在检查此用户是否是管理员,但 session 变量 SessionWrapper.currentRequest 为空

if (SessionWrapper.currentRequest.Role == "Admin")
{
users = db.UserRepository.GetAll();
}

我做错了什么?

最佳答案

我发现了问题。我的 global.asax 文件中没有 Session_Start 和 Session_End 方法。我添加了这两个方法签名,这不再是问题。

protected void Session_Start(object sender, EventArgs e)
{

}
protected void Session_End(object sender, EventArgs e)
{

}

关于asp.net-mvc-3 - 重定向到新页面后 session 变量为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22699335/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com