【问题标题】:ServiceStack Cookie not setting in browserServiceStack Cookie 未在浏览器中设置
【发布时间】:2023-03-16 11:50:01
【问题描述】:

我有一个启用 Razor 的应用程序和这样的服务:

public object Post(SelectTerminalRequest request)
{
    var location = base.Request.AbsoluteUri.CombineWith(request.TerminalId, "/flights");
    if (Request.Cookies.ContainsKey("Terminal"))
    {
        Request.Cookies.Remove("Terminal");
    }
    Request.Cookies.Add("Terminal",
        new Cookie("Terminal", request.TerminalId.ToString()) 
            { Expires = DateTime.Now.AddYears(1) });
    return new HttpResult(HttpStatusCode.Redirect)
    {
        Location = location
    };
}

但是,当我尝试在 Razor 视图中访问该 cookie 时,它​​是空的:

@{
     Cookie cookie;
     Request.Cookies.TryGetValue("Terminal", out cookie);
     var baseUri = Request.GetApplicationUrl() + "/terminals";
     var redirectUrl = cookie != null ? baseUri + "/" + cookie.Value + "/flights" : baseUri;
 }

当我浏览我的 cookie 时,我看不到任何带有 Terminal 的内容:

【问题讨论】:

    标签: servicestack servicestack-bsd servicestack-razor


    【解决方案1】:

    我敢肯定,您会为此而自责,但添加 cookie 应该在 Response 上,您使用的是 Request 对象。 :) 别担心,我也这样做了!

    Response.SetCookie("Terminal", request.TerminalId.ToString());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-26
      • 2021-09-30
      • 2019-07-25
      • 1970-01-01
      • 2020-10-07
      • 2019-08-02
      • 1970-01-01
      相关资源
      最近更新 更多