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

不在本地主机上时,添加到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.9K20

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。

91330
  • 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

    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

    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

    DotNetCore Web应用程序中的Cookie管理

    当我用DotNetCore重写大型应用程序并从旧系统“复制”代码时,这些差异是我很早就遇到的,并导致了对ASP.NET Core中cookie管理的了解。...在中间件将它们转储到响应之前,这是我们在请求期间跟踪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被创建,当关闭浏览器的时候

    60620

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

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

    19810

    ActiveMQ简介与安装

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

    65530

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

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

    2.8K10

    计算机网络(二)网络层

    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地址与端口号

    58120

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

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

    1.7K40

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

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

    1.5K20

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

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

    32410

    详解浏览器存储

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

    1.2K10

    使用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 Server的Reponse中返回的token们持久化在cookie中. 注意正式生产环境要使用https, 这里就不用了....这个地址将会在openid connect 中间件设置合适的cookies, 以确保配置的正确性. 而PostLogoutRedirectUris是登出之后重定向的网址.

    1.3K60

    《ASP.NET Core 微服务实战》-- 读书笔记(第10章)

    PaaS 环境中时,Cookie 身份验证仍然适用 不过它也会给应用增加额外负担 首先,Forms 身份验证要求应用对凭据进行维护并验证 也就是说,应用需要处理好这些保密信息的安全保障、加密和存储 云环境中的应用内加密...在传统 ASP.NET 应用开发中,常见的加密使用场景是创建安全的身份验证 Cookie 和会话 Cookie 在这种加密机制中,Cookie 加密时会用到机器密钥 然后当 Cookie 由浏览器发回...Web 应用时,再使用同样的机器密钥对其进行解密 如果无法依赖持久化文件系统,又不可能在每次启动应用时将密钥置于内存中,这些密钥将如何存储 答案是,将加密密钥的存储和维护视为后端服务 也就是说,与状态维持机制...它专门用于将数据保护 API 所用的存储从本地磁盘迁移到外部的 Redis 分布式缓存中 在这个类库,可使用以下方式在 Startup 类的 ConfigureServices 方法中配置由外部存储支持的数据保护功能...使用客户端凭证保障服务的安全 首先,只允许通过 SSL 与服务通信 此外,消费服务的代码需要在调用服务时附加凭据 这种凭据通常就是用户名和密码 在一些不存在人工交互的场景中,将其称为客户端标识和客户端密钥更准确

    1.8K10

    浏览器中存储访问令牌的最佳实践

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

    26910
    领券