首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

不在本地主机上时,添加到OpenIdConnect中间件EventHandler中的Cookie不会持久存在

当不在本地主机上时,添加到OpenIdConnect中间件EventHandler中的Cookie不会持久存在的原因是,OpenIdConnect中间件是基于HTTP协议的,而HTTP是一种无状态协议,它不会保存任何状态信息。当用户在浏览器中访问网站时,服务器会生成一个包含用户身份信息的Cookie,并将其发送给浏览器保存。当用户再次访问网站时,浏览器会将该Cookie发送给服务器,服务器通过解析Cookie中的信息来识别用户身份。

然而,当用户不在本地主机上时,例如用户在不同的设备上访问网站,或者清除了浏览器的Cookie,那么之前生成的Cookie就无法被发送给服务器,服务器无法获取到用户的身份信息,因此添加到OpenIdConnect中间件EventHandler中的Cookie也无法被持久保存。

为了解决这个问题,可以考虑以下几种方法:

  1. 使用持久化存储:将用户的身份信息保存在数据库或其他持久化存储中,而不是依赖于Cookie。当用户访问网站时,服务器可以通过其他方式获取用户的身份信息,例如通过用户名和密码进行验证。
  2. 使用Token验证:使用基于Token的身份验证机制,例如JWT(JSON Web Token)。当用户登录成功后,服务器会生成一个Token,并将其返回给客户端。客户端在后续的请求中携带该Token,服务器通过验证Token的有效性来识别用户身份。
  3. 使用会话管理:在服务器端使用会话管理技术,例如使用Session来保存用户的身份信息。当用户访问网站时,服务器会为每个用户创建一个唯一的会话ID,并将该ID发送给客户端保存。客户端在后续的请求中携带该会话ID,服务器通过会话ID来获取用户的身份信息。

需要注意的是,以上方法都需要在服务器端进行相应的实现和配置。具体的实现方式和推荐的腾讯云相关产品和产品介绍链接地址,可以根据具体的需求和技术栈来选择和配置。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

ASP.NET Core 那些认证中间件及一些重要知识点

对于开发人员只需要了解此中间件这几个对象即可: AuthenticationOptions 对象主要是用来提供认证相关中间件配置项,后面的 OpenIdConnect,OAuth,Cookie 等均是继承于此...在此中间件,主要是针对于Forms认证一个实现,也就是说它通过Cookie把用户个人身份信息通过加密票据存储Cookie中去,如果看过我之前Identity系列文章的话,那么应该知道用户个人身份信息就是...Cookie信息,然后验证Cookie是否合法,然后提取Cookie信息返回结果。...实际上,在验证中间件管道流程,应该只有一个组件被设定为 AutomaticChallenge = true,但其实大多数中间件这个参数默认都是 true ,这些中间件包括(Identity, Cookie...总结 本篇介绍了 ASP.NET Core 有关 Authentication 几个中间件,然后还有几个比较重要知识点,这篇文章内容有点多,对于一些人来说可能需要一点间消化。

1.8K20

Identity Server4学习系列一

3、Identity Server4 (1)、简介 Identity Server4是一种中间件,它将符合规范OpenIDConnect和OAuth2.0端点添加到任意ASP.NETCore应用程序...也就是说你移动端、本地应用程序只要符合OpenIDConnect和OAuth2.0协议,且你ASP.NETCore应用程序也符合,那么他们之间就能进行交互. (2)、实现认证方式 ?...客户端示例包括Web应用程序、本地移动或桌面应用程序、服务器进程等。...访问令牌包含有关客户端和用户信息(如果存在的话)。API使用该信息来授权对其数据访问。...,通过将你访问令牌(并遵循通OAuth2.0协议,向请求添加一些必要信息,并进行数据加加密等操作))同时将你令牌转发给Api,通过那么就可以正常访问Api。

89130
  • 浏览器存储访问令牌最佳实践

    应用程序也可以简单地将令牌保存在内存或将其放在cookie。一些存储机制是持久,另一些在一段时间后或页面关闭或刷新后会被清除。 一些解决方案跨选项卡共享数据,而其他解决方案仅限于当前选项卡。...本地存储数据在浏览器选项卡和会话之间可用,也就是说它不会过期或在浏览器关闭被删除。因此,通过localStorage存储数据可以在应用程序所有选项卡访问。...最佳实践建议在内存存储令牌将其保存在闭包。例如,您可以定义一个单独方法来使用令牌调用API。它不会应用程序(主线程)透露令牌。...否则,由于cookie同站限制,浏览器不会将令牌cookie添加到API请求。...OAuth代理解密cookie并将令牌添加到上游API。cookie属性确保浏览器仅将cookie添加到HTTPS请求,以确保它们在传输过程是安全。由于令牌是加密,它们在休息也是安全

    23910

    Identity Server 4 - Hybrid Flow - MVC客户端身份验证

    ()方法, 它会创建一个用于对token签名临时密钥材料(但是在生产环境应该使用可持久密钥材料):图片然后需要添加资源和客户端, 按照官方文档做法, 我添加一个Config类:图片这里我首先添加了一个...()方法来添加和配置身份认证中间件.这里我们使用Cookie作为验证用户首选方式, 而DefaultScheme = "Cookies", 这个"Cookies"字符串是可以任意填写, 只要与后边一致即可...).SignInScheme和上面的DefaultScheme一致, 它保证身份认证成功结果将会被保存在方案名为"Cookies"Cookie里. ...ID Token之后, 会再次进行验证, 然后会通过它创建Claims Identity, 也就是前面代码里User.Claims.这个身份验证凭据都会保存在加密Cookie里面:图片来到About...图片这里内容以后再讲.登录好用之后, 就考虑一下登出.再_Layout.cshtml里面添加登出按钮, 这部分官方文档都有:图片然后建立Action方法:图片首先要清除本地Cookie, 这个Cookie

    2K20

    CentOs7.3 搭建 RabbitMQ 3.6 Cluster 集群服务

    AMQP,即Advanced message Queuing Protocol,高级消息队列协议,是应用层协议一个开放标准,为面向消息中间件设计。...消息中间件主要用于组件之间解耦,消息发送者无需知道消息使用者存在,反之亦然。 AMQP主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。...var/lib/rabbitmq/.erlang.cookie 会提示输入yes 和 密码 注意事项 cookie在所有节点上必须完全一样,同步一定要注意。...queue和message虽然会存在所有镜像队列,但客户端读取不论物理面连接节点还是从节点,都是从节点读取数据,然后主节点再将queue和message状态同步给从节点,因此多个客户端连接不同镜像队列不会产生同一...,配置使用应用于所有队列,所以表达式为”^” 集群重启 集群重启,最后一个挂掉节点应该第一个重启,如果因特殊原因(比如同时断电),而不知道哪个节点最后一个挂掉。

    1.3K60

    Identity Server 4 - Hybrid Flow - MVC客户端身份验证

    注册到ASP.NET Core容器里面; 随后我调用了services.AddDeveloperSigningCredentials()方法, 它会创建一个用于对token签名临时密钥材料(但是在生产环境应该使用可持久密钥材料...这样做, 就保证它不会修改任何从Authorization Server返回Claims. 这里通过调用services.AddAuthentication()方法来添加和配置身份认证中间件....SignInScheme和上面的DefaultScheme一致, 它保证身份认证成功结果将会被保存在方案名为"Cookies"Cookie里. ...这个身份验证凭据都会保存在加密Cookie里面: ? 来到About菜单: ?...首先要清除本地Cookie, 这个Cookie名字要与之前配置默认方案里名字一致, 这一步就相当于登出MVC客户端.

    2.8K40

    详解浏览器存储

    结帐,服务器读取发送来cookie就行了。 2.什么是cookie cookie指某些网站为了辨别用户身份而储存在用户本地终端上数据(通常经过加密)。...在设置值,可以通过document.cookie属性设置新cookie字符串。这个字符串在被解析后会添加到原有cookie。...设置document.cookie不会覆盖之前存在任何cookie,除非设置了已有的cookie。...cookie是用来维护用户信息,而域名(domain)下所有请求都会携带cookie,但对于静态文件请求,携带cookie信息根本没有用,此时可以通过CDN(存储静态文件域名和域名分开来解决...不过sessionStorage比localStorage更严苛一点,除了协议、主机名、端口外,还要求在同一窗口(也就是浏览器标签页)下 生命周期:localStorage 是持久本地存储,存储在其中数据是永远不会过期

    1K10

    使用Identity Server 4建立Authorization Server (3)

    这次讲一下Authentication 身份验证 (而Authorization是授权, 注意区分), 使用OpenIdConnect. 这次我们使用是一个MVC客户端. ...这样做, 就保证它不会修改任何从Authorization Server返回Claims. AddAuthentication()方法是像DI注册了该服务....一旦OpenId Connect协议完成, SignInScheme使用Cookie Handler来发布Cookie (中间件告诉我们已经重定向回到MvcClient了, 这时候有token了, 使用...SaveTokens为true表示要把从Authorization ServerReponse返回token们持久化在cookie. 注意正式生产环境要使用https, 这里就不用了....这个地址将会在openid connect 中间件设置合适cookies, 以确保配置正确性. 而PostLogoutRedirectUris是登出之后重定向网址.

    1.3K60

    DotNetCore Web应用程序Cookie管理

    当我用DotNetCore重写大型应用程序并从旧系统“复制”代码,这些差异是我很早就遇到,并导致了对ASP.NET Corecookie管理了解。...在中间件将它们转储到响应之前,这是我们在请求期间跟踪cookie状态地方。 中间件 我们需要照顾下一件事是创建我们中间件并将其放入我们管道。...要注意另一件事是,我检测到响应何时开始,然后检查状态码是否不在特定范围内。如果超出该范围,那么我们将继续通过服务将Cookie写入响应。...好 最后,我们需要添加到中间件代码并进行连接。...如果没有,我们将其添加到缓存并标记为已删除。 GetOrSet 有时,您希望Cookie不管存在如何,但是如果已经存在,那么您就想获得它价值。

    2.5K10

    可登陆爬虫Python实现

    登录问题其实就是程序发送请求,服务器返回数据,发出http响应消息报文,这两种类型消息都是由一个起始行,而cookie就在在http请求和http响应头信息,在请求添加用户信息cookie即可实现登录...当用户通过浏览器首次访问一个域名,访问WEB服务器会给客户端发送数据,以保持WEB服务器与客户端之间状态保持,这些数据就是Cookie,它是 Internet 站点创建 ,为了辨别用户身份而储存在用户本地终端上数据...,Cookie信息一般都是经过加密Cookie存在缓存或者硬盘,在硬盘是一些小文本文件,当你访问该网站,就会读取对应网站Cookie信息,Cookie有效地提升了我们上网体验。...一般而言,一旦将 Cookie存在计算机上,则只有创建该 Cookie 网站才能读取它。 ...Cookie种类 会话Cookie(Session Cookie):这个类型cookie只在会话期间内有效,保存在浏览器缓存之中,用户访问网站,会话Cookie被创建,当关闭浏览器时候

    60320

    京东一面:浏览器跨标签页通信方式都有什么?

    这种架构方式主要目的是提高浏览器稳定性、安全性和性能。 在多进程浏览器,每个标签页都独立运行在独立进程,这样一旦一个标签页崩溃或遇到问题,不会影响其他标签页和浏览器本身稳定性。...在操作系统,著有有以下几种通信方式: 基于管道通信: 管道是一种半双工通信机制,可用于同一父进程与其子进程之间通信,或者用于同一计算机上不同进程之间通信。...在 install 事件,你可以缓存静态资源,如 HTML、CSS、JavaScript 文件,以便在离线使用; 激活: 安装成功后,Service Worker 并不会立即接管页面的网络请求。...localStorage 在 Web Storage ,每一次将一个值存储到本地存储,都会触发一个 storage 事件,由事件监听器发送给回调函数事件对象有如下图所示: 20230823085308...通过 postMessage,窗口可以向新窗口发送数据,从而实现了简单跨窗口通信。在实际应用,你可以在接收消息窗口中监听 message 事件,然后在事件处理程序处理接收到数据。

    18110

    ActiveMQ简介与安装

    ,将多数消息提交到处理快接收者,这主要是对PTP消息所说)、虚拟接收者(降低与中介连接数目)、成熟消息持久化技术(部分消息需要持久化到数据库或文件系统,当中介崩溃,信息不会丢失)、支持游标操作...同样,消息接收者也不会关心消息来源于哪里和消息是怎样投递给ActiveMQ。对于多语言编写复杂应用环境,允许客户端使用不同编程语言甚至不同消息包装协议。...只要是两个应用程序间需要通信情况,都可以考虑使用JMS,不论这种通信是在本地(就是通信两个应用程序在同一台主机上),还是分布在不同机器上。...多个需要通信应用程序在同一个机器上情况下,您可以考虑在执行机上独立运行ActiveMQ或者将ActiveMQ嵌入到Java应用服务。无论采用哪种方式,都可以确保应用程序能够发送和接收消息。...订阅者必须保持持续活状态以接收消息,除非订阅者建立了持久订阅。在那种情况下,在订阅者未连接发布消息将在订阅者重新连接重新发布。 5.

    64630

    干货 | 京东购物车Java架构实现及原理!

    (不登录),商品仍然在Cookie, 所以购物车商品还是存在. 2)用户登录了,添加商品, 此时会将Cookie中和用户选择商品都添加到购物车, 然后删除Cookie商品....所以当用户再次访问(不登录),此时Cookie购物车商品已经被删除了, 所以此时购物车商品不在了. 3)用户登录, 添加商品,此时商品被添加到数据库做了持久化存储, 再次打开登录用户名和密码,...)  能持久就数据库  速度太慢 那么我今天要讲就是: 用户没登陆:购物车添加到Cookie 用户登陆: 保存购物车到Redis  (不用数据库) 整体思路图解: 接下来就是代码实例来实现...从Json字符串-->对象使用是objectMapper.readValue(). 回归上面我们项目中代码, 只有未登录 添加商品才会将此商品添加到Cookie....然后登录的话  就把Cookie购物车清空, 并将购物车内容添加到Redis持久化保存. 如果未登录, 将选择商品追加到Cookie.

    2.7K10

    计算机网络(二)网络层

    SMTP、POP、IMAP DNS P2P应用 web缓存/代理服务器技术 功能 缓存既充当客户端,也充当服务端 socket 编程 TCP客户端软件流程 UDP客户端软件流程 概念 进程 主机上运行程序...进程标识符 IP地址 + 端口号 RRT 从客户端发送一个很小数据包到服务器并返回所经历时间 cookie 某些网站为了辨别用户身份, 进行session跟踪而储存在用户本地终端数据...无状态 服务器不维护任何有关客户端过去所发送消息信息 需要cookie存在本地方便快捷使用 SMTP、POP、IMAP 用于邮件发送协议 DNS 域名解析系统 DNS服务 域名向IP地址翻译...、主机别名、负载均衡 层级访问 本地域名解析服务器无法解析域名,访问根域名服务器 P2P应用 web缓存/代理服务器技术 功能 在不访问服务器前提下满足客户端HTTP请求 缓存既充当客户端,也充当服务端...如果所请求对象在缓存,缓存返回对象 如果不在缓存,缓存服务器向原始服务器发送HTTP请求,获取对象,然后返回给客户端并保存 socket 编程 TCP客户端软件流程 确定服务器IP地址与端口号

    57620

    干货 | 京东购物车 Java 架构实现及原理!

    (不登录),商品仍然在Cookie, 所以购物车商品还是存在. 2)用户登录了,添加商品, 此时会将Cookie中和用户选择商品都添加到购物车, 然后删除Cookie商品....所以当用户再次访问(不登录),此时Cookie购物车商品已经被删除了, 所以此时购物车商品不在了. 3)用户登录, 添加商品,此时商品被添加到数据库做了持久化存储, 再次打开登录用户名和密码,...)  能持久就数据库  速度太慢 那么我今天要讲就是: 用户没登陆:购物车添加到Cookie 用户登陆: 保存购物车到Redis  (不用数据库) 整体思路图解: ?...从Json字符串-->对象使用是objectMapper.readValue(). 回归上面我们项目中代码, 只有未登录 添加商品才会将此商品添加到Cookie. ?...然后登录的话  就把Cookie购物车清空, 并将购物车内容添加到Redis持久化保存. 如果未登录, 将选择商品追加到Cookie.

    1.7K40

    03 网络面经:你真的了解Cookie和Session吗?

    这篇文章带你从Cookie和Session初级应用到高级应用捋一遍,看看有多少不知道内容。 什么是Cookie? 我们知道HTTP协议是无状态,一次请求完成,不会持久化请求与相应信息。...Cookie是客户端保存用户信息一种机制,将服务器发送到浏览器数据保存在本地,下次向同一服务器再发起请求被携带发送。对于Cookie,可以设置过期时间。...对照Cookie,Session是一种在服务器端保存数据机制,用来跟踪用户状态数据结构,可以保存在文件、数据库或者集群。...当在应用程序Web页之间跳转,存储在Session对象变量将不会丢失,而会在整个用户会话中一直存在下去。当客户端关闭会话,或者Session超时失效时会话结束。...第一次创建Session,服务端会通过在HTTP协议返回给客户端,在Cookie记录SessionID,后续请求传递SessionID给服务,以便后续每次请求都可分辨你是谁。

    31510

    消息中间件—RabbitMQ(集群原理与搭建篇)

    一、RabbitMQ集群方案原理 RabbitMQ这款消息队列中间件产品本身是基于Erlang编写,Erlang语言天生具备分布式特性(通过同步Erlang集群各节点magic cookie来实现)...,对于持久化消息,网络和磁盘同步复制开销都会明显增加。...(2)搭建10节点组成RabbitMQ集群 该节主要展示是集群搭建,需要确保每台机器上正确安装了上述三种组件,并且每台虚拟机上RabbitMQ实例能够正常启动起来。...内存节点将所有的队列,交换器,绑定关系,用户,权限,和vhost元数据信息保存在内存。...鉴于篇幅原因这里就不在对监控部分进行详细描述,会在后续篇幅对如何使用RabbitMQHTTP API接口进行监控数据统计进行详细阐述。

    1.5K20

    ASP.NET Core 1.1 简介

    响应缓存中间件 通过将Microsoft.AspNetCore.ResponseCaching和Microsoft.Extensions.Caching.Memory包添加到应用程序,现在可以在应用程序激活与之前...例如,您可以将响应压缩或缓存应用于特定操作,也可以使用基于路由值请求文化提供程序,使用本地中间件为请求建立当前文化。...这允许您从应用程序启动从密钥保险库秘密检索配置并将其保存在内存,使用普通ASP.NET Core配置抽象来访问配置数据。...这允许在网站多个实例之间共享密钥,以便您可以例如在运行ASP.NET Core应用程序多个负载平衡服务器上共享认证cookie或CSRF保护。...因此,当手动使用Data ProtectionProtect方法,不应使用不持久Redis实例。 数据保护针对短暂数据进行了优化。

    2.4K60
    领券