重定向后找不到会话值

时间:2015-10-01 11:54:28

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

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

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

On Production但是这样可以正常工作并且会话变量被正确检索。

可以解释为什么所有变量在开发环境中都为空。

 [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中,我在两个环境中都有相同的sessionState值,即&#34; InProc&#34;

1 个答案:

答案 0 :(得分:1)

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