首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重定向的ASP.NET5 WebAPI会话

重定向的ASP.NET5 WebAPI会话
EN

Stack Overflow用户
提问于 2022-02-10 11:25:39
回答 1查看 71关注 0票数 0

我试图在WebAPI的第一个方法中存储一个会话,并从第二个方法中获取它。我正在使用HttpContext.Session.SetString,并且在我的statup文件中包含了所需的"app.useSession“和services.AddDistributedMemoryCache()、services.AddSession()方法。

问题是,我的第一个方法有一个返回类型"RedirectResult“,并且它正在执行一个”新的重定向(“http://.”)

然后,当我尝试运行第二个方法时,会话为null。我假设是因为在第一个方法中发送给浏览器的会话cookie头被重定向覆盖。

那么,怎样才能做到呢?我试图存储一个code_verifier字符串(用于OAuth PKCE实现),然后重定向到OAuth代码请求端点

更新:似乎我最初的怀疑是不正确的。这与重定向无关。当OAuth服务器重定向到我的第二个WebAPI方法时,它会通过POST实现这一点。由于某些原因,cookie(包括AspNetCore.Session cookie)不会被发送,不像我试图通过浏览器中的普通GET发出请求时那样.

我确实看到了用于SameSite cookie的AspNetCore.Session设置为LAX。那我该怎么做..?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-10 12:28:08

一个"LAX“曲奇不允许它被结转,当请求通过邮寄来自第三方。

通过将SameSite核心会话cookie的.NET属性设置为"None“,解决了这个问题。这还要求将安全标志设置为"true“,WebAPI运行在https上。

上一次会话cookie必须手动从浏览器中删除,才能生效。

代码语言:javascript
复制
        services.AddSession(options =>
        {
            options.Cookie.SameSite = Microsoft.AspNetCore.Http.SameSiteMode.None;
            options.Cookie.SecurePolicy = Microsoft.AspNetCore.Http.CookieSecurePolicy.Always;                
        });

        services.AddSession();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71064252

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档