【问题标题】:Reading value from cookie in asp.net core 1.0.1从asp.net core 1.0.1中的cookie读取值
【发布时间】:2017-02-25 11:26:04
【问题描述】:

用户使用以下代码成功登录后,我将用户的全名存储在 cookie 中。

var res = await _signInManager.PasswordSignInAsync(suser.UserName, user.Password, user.Remember, false);
                if (res.Succeeded)
                {
                    Response.Cookies.Append("fullName", suser.FullName);
                    if (string.IsNullOrWhiteSpace(returnUrl))
                        return RedirectToAction("Dashboard", "User");
                    else
                        return Redirect(returnUrl);
                }

我想在_Layout 页面中读取此值,以便可以在母版页中显示全名。根据this 帖子中提到的解决方案。我尝试在 _Layout 页面中遵循 sysntax。

@inject Microsoft.AspNetCore.Http.IHttpContextAccessor HttpContextAccessor
@{ 
      ViewBag.FullName = HttpContextAccessor.HttpContext.Request.Cookies["fullName"];
}

但我在ViewBag.FullName 中没有得到任何价值。我在这里做错了吗?如何在 Views 中读取 cookie 中的存储值?

【问题讨论】:

    标签: asp.net-mvc cookies asp.net-core asp.net-core-mvc


    【解决方案1】:

    我已经进行了一些测试以获得与您相同的结果。

    在我看来,您将一个新的 cookie 值附加到 Response.Cookie 并尝试在 Request.Cookies 中访问它,因此,附加值(“全名”)仅在下一个可用请求(重定向后)。如果您尝试在设置 cookie 的同一请求中呈现的视图中访问它,则 cookie 值将为空。

    我用“return View()”和“return RedirectToAction”做了测试,只有第二个有效。

    我看到在您的代码中您正在执行重定向,我建议对其进行调试,看看代码是否实际输入了该代码行,如果是,请转到您正在重定向的那个操作并调试吧,看看Request.Cookies是否正常。

    问候。

    【讨论】:

      猜你喜欢
      • 2017-07-27
      • 1970-01-01
      • 2019-02-21
      • 2019-02-10
      • 2018-06-03
      • 1970-01-01
      • 2016-07-04
      • 2011-11-08
      • 1970-01-01
      相关资源
      最近更新 更多