gpt4 book ai didi

asp.net-mvc - .NET MVC 从 ActionFilter 写入 Cookie

转载 作者:行者123 更新时间:2023-12-03 16:05:10 25 4
gpt4 key购买 nike

我构建了一个 ActionFilter 来在我的 MVC 站点上托管一个页面点击记录器,并且需要将一些值保存到 cookie 中。我使用以下代码来编写 cookie:

public class LogRequestAttribute : ActionFilterAttribute, IActionFilter
{
void IActionFilter.OnActionExecuting(ActionExecutingContext filterContext)
{
if(filterContext.HttpContext.Request.UserHostAddress != "127.0.0.1")
ThreadPool.QueueUserWorkItem(delegate
{
string adid = filterContext.HttpContext.Request.QueryString["adid"] != null
? (string)filterContext.HttpContext.Request.QueryString["adid"] : string.Empty;

if (!String.IsNullOrEmpty(adid))
{
HttpCookie cookie = new HttpCookie("adid", adid);
cookie.Expires = DateTime.Now.AddDays(30);
filterContext.HttpContext.Response.Cookies.Add(cookie);
}

DomainModel.Concrete.SqlPageHitActivity logger
= new DomainModel.Concrete.SqlPageHitActivity(
System.Configuration.ConfigurationManager.ConnectionStrings["TrackingConnectionString"].ConnectionString);

DomainModel.Entities.PageHitActivity hit = new DomainModel.Entities.PageHitActivity
{
AdIdentifier = filterContext.HttpContext.Response.Cookies["adid"].Value == null ? string.Empty : filterContext.HttpContext.Response.Cookies["adid"].Value,
Authenticated = filterContext.HttpContext.Request.IsAuthenticated,
Browser = filterContext.HttpContext.Request.UserAgent,
CookieId = string.Empty,
Parameters = string.Empty,
Referer = filterContext.HttpContext.Request.UrlReferrer == null ? string.Empty : filterContext.HttpContext.Request.UrlReferrer.ToString(),
RequestDate = DateTime.Now,
RequestorIP = filterContext.HttpContext.Request.UserHostAddress,
SessionId = string.Empty,
SiteId = 1,
Target = filterContext.HttpContext.Request.Url != null ? filterContext.HttpContext.Request.Url.AbsoluteUri : string.Empty,
UserId = filterContext.HttpContext.Request.IsAuthenticated ? filterContext.HttpContext.User.Identity.Name : string.Empty
};
logger.LogHit(hit);
});
}
}

cookie 似乎出现在集合中,但在记录后续页面点击时不可用。

谢谢,
克里斯

最佳答案

尝试添加一个新的 cookie 而不是修改现有的集合:

HttpCookie cookie = new HttpCookie("adid", MyValue);
cookie.Expires = DateTime.Now.AddDays(30);

filterContext.HttpContext.Response.Cookies.Add(cookie);

关于asp.net-mvc - .NET MVC 从 ActionFilter 写入 Cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1557066/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com