【问题标题】:Session values not found after redirect重定向后找不到会话值
【发布时间】:2015-10-01 11:54:28
【问题描述】:

在 Asp.net MVC 项目中,我在登录后将用户重定向到另一个页面。

在开发环境中,我所有的会话变量都返回 null。

在生产环境中,这可以正常工作,并且可以正确检索会话变量。

有人能解释一下为什么在开发环境中所有变量都为空。

 [AllowAnonymous]
 [HttpPost]
 public ActionResult Login(LoginModel model, string returnUrl)
 {
    // Some validations 

     if (Url.IsLocalUrl(returnUrl))
          {
              var urlDeCoded = HttpUtility.UrlDecode(returnUrl);
              var htmlDecoded = HttpUtility.HtmlDecode(urlDeCoded);
              return Redirect(htmlDecoded);
          }
 }

/// Retreiveing session variables
 var vm = SessionData.GetCurrentObject<MembershipWizardViewModel>();

在 web.Config 中,两个 Envirnoments 上的 sessionState 值相同,即“InProc”

【问题讨论】:

  • 每次都这样吗?
  • 是的..每次都会发生..
  • 我发现因为我在一个页面中有一个部分,并且登录控制在部分内......登录时父页面不会刷新,所以它会继续失去会话。我需要一种在登录时刷新父页面的方法。

标签: asp.net asp.net-mvc c#-4.0 session-variables url-redirection


【解决方案1】:

你会放松你的会话吗? 我认为这可能是 cookie 的问题:会话 ID 可以保存在 cookie 中,如果您在不同服务器上的 Url 上重定向,则 cookie 是不同的,因此它会为您创建一个新会话......具有空变量。 一个常见的错误是从“localhost”重定向到“127.0.0.1”,即使技术上相同,也可能会造成很多麻烦。

【讨论】:

  • 是的,我失去了会话。另外,我正在重定向到同一个域和同一个服务器。
  • 我发现因为我在一个页面中有一个部分,并且登录控制在部分内......登录时父页面不会刷新,所以它会继续失去会话。我需要一种在登录时刷新父页面的方法
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-29
  • 2017-09-02
  • 2013-05-01
  • 1970-01-01
相关资源
最近更新 更多