1

我有两个控制器LoginAccount控制器。登录验证后,我将值设置为Session["username"]并使用 .重定向到Account控制器的索引页面Response.Redirect("../Account")。我需要访问Controller页面Session["Username"]上的值。我在视图上使用但未显示值。indexAccount@Session["Username"]

重定向是否会导致会话变量的处置?

    public void LoginVerify(UserModel usermodel)
    {

        var dbContext = new db_restproEntities(); //class derived from DbContext
        var usernames = from username in dbContext.tbl_login select username; //read data

        List<tbl_login> users = dbContext.tbl_login.ToList();
        bool active = false;
        foreach (var x in users)
        {
            if (x.username == usermodel.username && x.password == usermodel.password)
            {
                if (x.active == true)
                {
                    active = true;
                    Session["Message"] = "";
                    Session["session_username"] = x.username;
                    Session["status"] = "TRUE";
                    Session["userid"] = x.user_id;
                     Response.Redirect("../" + x.role);

                }


            }

        }
        Session["Message"] = "Invalid Login Details";
        Response.Redirect("../Login");
    }
4

3 回答 3

0

根据我在此应用程序上的经验,重定向导致了问题。

我将登录验证方法的返回类型从 void 更改为操作结果,并将 Response.Redirect("../"+x.role) 替换为 return RedirectoAction("Index",x.role)

会话变量现在已创建并显示。

于 2013-04-25T15:20:44.660 回答
0

使用下面的代码来显示

<span>
  @HttpContext.Current.Session["username"].ToString()
</span>
于 2013-04-22T04:51:42.027 回答
-1

重定向是否会导致会话变量的处置?

不。

于 2013-04-22T06:36:30.693 回答