小编chg*_*chg的帖子

.net core 2.1 从另一个位置重定向时,cookie 值始终为空

我正在使用自定义授权机制,将当前用户会话存储在 cookie 中。每次有人访问网站时,ActionFilter 都会启动它来验证 cookie 值和会话状态。

我遇到的问题是 - 我必须将POST一些数据发送到另一个网站(https://differentUrl.com),在那里我传递我的网站 returnUrl (https://mywebsiteUrl.com)。完成工作后,不同的网站将POST响应发送回我的 returnURL。发生这种情况后,我尝试获取的 cookie 始终为null.

像这样创建 cookie(这发生在登录时):

private readonly IHttpContextAccessor _contextAccessor; //Injected via DI
...
var cookieOptions = new CookieOptions()
{
    Expires = DateTime.Now.AddDays(10),
    Secure = true,
    HttpOnly = false,
    SameSite = SameSiteMode.None //Still sets as Lax in browser
};

this._contextAccessor.HttpContext.Response.Cookies.Append("SomeKey", "myEncryptedCookieValue", cookieOptions);
Run Code Online (Sandbox Code Playgroud)

重定向后检索cookie:

var cookieDataString = this._contextAccessor.HttpContext.Request.Cookies["SomeKey"];
Run Code Online (Sandbox Code Playgroud)

cookieDataString始终null

当我在同一个网站上时它工作正常,但是当我从另一个网站重定向回来时,它总是 null

更新 1:

经过一番研究,我发现这个问题可能会导致SameSite政策。发现这篇文章使用相同的站点 …

asp.net asp.net-mvc asp.net-core

5
推荐指数
1
解决办法
2034
查看次数

标签 统计

asp.net ×1

asp.net-core ×1

asp.net-mvc ×1