如何在 _layout 中设置 cookie
how to set cookies in _layout
当网站启动时,我有一个功能可以检查是否有用户 cookies-
foreach (var cookie in HttpContextAccessor.HttpContext.Request.Cookies)
{
if (cookie.Key == "OrderLoginDetails")
{
Customer.Cookie = cookie.Value;
}
}
效果很好!
当我尝试制作新的 cookie 时问题开始了...
如何在布局文件中制作新的 cookie?
我这样试过-
if (Customer.Cookie == null)
{
var newCust = Customer.newCustomer();
var cookieOptions = new CookieOptions
{
Path = "/",
HttpOnly = false,
IsEssential = true, //<- there
Expires = DateTime.Now.AddMonths(1),
};
Response.Cookies.Append("OrderLoginDetails", Customer.CustomerCode + Customer.CustomerMail, cookieOptions);
}
但是不行。
此致
如果代码在布局或其他 Razor 视图文件中,您可以使用 Context
属性 访问 HttpContext
例如
foreach (var cookie in Context.Request.Cookies)
{
if (cookie.Key == "OrderLoginDetails")
{
Customer.Cookie = cookie.Value;
}
}
和
Context.Response.Cookies.Append("OrderLoginDetails", Customer.CustomerCode + Customer.CustomerMail, cookieOptions);
虽然如果你想为每个页面请求执行这段代码,你可能会考虑一个过滤器而不是将它嵌入到布局页面中:https://www.learnrazorpages.com/razor-pages/filters
当网站启动时,我有一个功能可以检查是否有用户 cookies-
foreach (var cookie in HttpContextAccessor.HttpContext.Request.Cookies)
{
if (cookie.Key == "OrderLoginDetails")
{
Customer.Cookie = cookie.Value;
}
}
效果很好!
当我尝试制作新的 cookie 时问题开始了...
如何在布局文件中制作新的 cookie?
我这样试过-
if (Customer.Cookie == null)
{
var newCust = Customer.newCustomer();
var cookieOptions = new CookieOptions
{
Path = "/",
HttpOnly = false,
IsEssential = true, //<- there
Expires = DateTime.Now.AddMonths(1),
};
Response.Cookies.Append("OrderLoginDetails", Customer.CustomerCode + Customer.CustomerMail, cookieOptions);
}
但是不行。
此致
如果代码在布局或其他 Razor 视图文件中,您可以使用 Context
属性 访问 HttpContext
例如
foreach (var cookie in Context.Request.Cookies)
{
if (cookie.Key == "OrderLoginDetails")
{
Customer.Cookie = cookie.Value;
}
}
和
Context.Response.Cookies.Append("OrderLoginDetails", Customer.CustomerCode + Customer.CustomerMail, cookieOptions);
虽然如果你想为每个页面请求执行这段代码,你可能会考虑一个过滤器而不是将它嵌入到布局页面中:https://www.learnrazorpages.com/razor-pages/filters