首页 > 解决方案 > 当操作以对 Challenge(AuthenticationProperties, string[]) 的往返结束时未保存 Cookie

问题描述

我们有一个正常的操作方法,我们在其中执行以下操作:

CookieOptions cookieOptions = new CookieOptions
{
    IsEssential = true,
    SameSite = SameSiteMode.None,
    Secure = true,
    HttpOnly = false
};

HttpContext.Response.Cookies.Append("helpmework", "1", cookieOptions);

return Challenge(authenticationProps, scheme); // Request following this call does not contain above cookie
return Ok(); // next request successfully contains cookie

基本上,如果我们通过调用来结束方法,Challenge从 继续运行的部分代码,Challenge最终不会添加 cookie。如果我们首先添加 cookie(在单独的请求中),然后尝试使用 执行上述操作Challenge,我们可以看到 cookie 就好了。

所以问题似乎是,如果我在我希望通过 授权的同一个请求中添加一个 cookie Challenge,该 cookie 仍然没有保存在HttpContext接下来的Challenge调用中,这就是我最终使用 cookie 的原因摆在首位。

我认为在发送实际响应之前不会保存 cookie,这可能解释了为什么会发生这种情况。我遇到的问题的任何替代方案?

标签: c#asp.net-coreauthenticationcookiesauthorization

解决方案


推荐阅读