gpt4 book ai didi

asp.net - ASP MVC 更改不发送任何请求的用户的 cookie 值

转载 作者:行者123 更新时间:2023-12-02 16:17:03 24 4
gpt4 key购买 nike

假设我们有两个用户: 用户 1用户 2

我想当用户 1 发送更改 cookie 值的请求时,用户 2 的 cookie 值会发生变化。

这是我在类里面的代码:

public static void changeCookieCount(Int64 targetUserId)
{
int a = //get cookie value from database via `targetUserId`
HttpCookie cookieCount = HttpApp.RequestCookie("cookieCount");

if (cookieCount != null)
{
cookieCount.Value = a;
cookieCount.Expires = DateTime.Now.AddSeconds(5);
cookieCount.Expires = DateTime.Now.AddMonths(2);
cookieCount.Secure = true;
HttpApp.ResponseCookie(cookieCount);
}
else
{
cookieCount = new HttpCookie("cookieCount");
cookieCount.Value = a;
cookieCount.Expires = DateTime.Now.AddSeconds(5);
cookieCount.Expires = DateTime.Now.AddMonths(2);
cookieCount.Secure = true;
HttpApp.ResponseCookie(cookieCount);
}
}

如您所见,我在用户 HttpApp 的类中更改了 cookie 值,这是“HttpApp”的一部分:

 public class HttpApp: HttpApplication
{
public static void ResponseCookie(HttpCookie cookie)
{
HttpContext.Current.Response.Cookies.Add(cookie);
}
public static HttpCookie RequestCookie(string name)
{
return HttpContext.Current.Request.Cookies[name];
}
}

我的问题是,如何访问目标用户以更改 cookie 值?

最佳答案

将 user_1 的 cookie 更改请求存储在数据库中。当 user_2 回来时,检查数据库并将新的 cookie 值写入 user_2。

创建一个表,用于存储该用户的 userId 和新的 cookie 值。每当 user_1 需要更改请求时,为 user_2 插入新值。

创建一个将在每个请求上执行的 ActionFilterAttribute:

public class EachRequestFilter : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (filterContext.HttpContext.Session == null)
return;

if (filterContext.HttpContext.Session["UserId"] == null)
return;

// Check database for any cookie change for this UserId and if there is a change update cookie value...

}
}

关于asp.net - ASP MVC 更改不发送任何请求的用户的 cookie 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31423913/

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