浏览器关闭后删除身份验证/会话 cookie

2023-11-22

浏览器关闭后 cookie 继续存在需要哪些具体步骤?目前我有:

  1. createPersistentCookie set to true on LoggedIn event.
  2. 指定机器密钥。
  3. 表单滑动过期设置为true.

只要浏览器打开,用户就会保持登录状态,但一旦关闭,无论多长时间,用户都需要再次登录。我缺少什么?

EDIT:我浏览了 marapet 指出的文章(请参阅下面的评论),它让我对票证是否确实具有 IsPersistent 标志感兴趣,它确实有。解密后的票据如下所示:System.Web.Security.FormsAuthentication.Decrypt(Request.Cookies[System.Web.Security.FormsAuthentication.FormsCookieName].Value) {System.Web.Security.FormsAuthenticationTicket} CookiePath: "/" Expiration: {19/08/2010 17:27:14} Expired: false IsPersistent: true IssueDate: {19/07/2010 17:27:14} Name: "alex" UserData: "" Version: 2所有详细信息都是正确的,并且与我在 LoggedIn 事件中设置的信息相对应。更重要的是,我可以直接从 cookie 检索 cookie 值,与此相同。然而,一旦我关闭浏览器,cookie 就会丢失。

然而,我注意到,携带票证的 cookie 由于某种原因重置了日期。首先,我无法覆盖 web.config 中的设置,因此在 LoggedIn 事件结束时,它的 Expires 属性是发布日期后 4000 分钟,而不是我以编程方式设置的一个月。然后,在页面加载后,我使用 FormsAuthentication.FormsCookieName 检索到的 cookie 的 Expires 属性为 01/01/0001。我想也许这就是问题所在?任何想法将不胜感激。

EDIT#2:我正在更改标题和标签以包含会话,因为它与问题/解决方案相关


所以我最终找到了解决方案。事实证明,这不是身份验证 cookie 本身的问题(它被正确保留,或者更确切地说,如果处理程序没有删除它,就会错误地确定用户没有登录)缺少的会话)。问题在于会话 cookie 丢失,或者未正确识别。因此解决方法是在登录期间手动添加会话 cookie,如下所示:

HttpCookie authCookie = new HttpCookie("ASP.NET_SessionId", Session.SessionID);
authCookie.Domain = ".mydomain.com";
authCookie.Expires = DateTime.Now.AddMonths(1);
Response.Cookies.Add(authCookie);

现在,当浏览器再次打开时,会话将被正确识别并恢复用户会话。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

浏览器关闭后删除身份验证/会话 cookie 的相关文章

  • 生成 Flask 中使用的签名会话 cookie 值

    我正在用另一个需要将项目注入会话的 Flask 服务器代理 Flask 服务器 两台服务器具有相同的密钥 因此加密签名将相同 当使用 Flask 和会话时 http 响应包含一个 Set Cookie 标头session text 其中 t
  • MVC4 - ContextDependentView - 是什么意思?

    我刚刚开始使用 MVC4 我看到的第一个操作方法有一些新内容 我查了一下互联网 找不到任何关于此的信息 public ActionResult LogOn return ContextDependentView 有谁知道 ContextDe
  • CORS 问题从 React 应用程序 > 节点服务器 > 重定向到 Google OAuth2 身份验证发出 AJAX 请求

    大家好 过去两天我一直在绞尽脑汁研究这个问题 但没有运气 这是我在尝试从我的 React 应用程序 localhost 3000 使用 Google Oauth2 Passport 策略进行身份验证时遇到的错误 我正在 localhost
  • 我如何通过 Spring Security 创建 oauth 2 用户名密码流

    我正在尝试在 Spring Security 上实现 oauth2 用户名密码流程 但我找不到任何文档和示例代码 我正在检查 Sparklr 和 tonr insode oauth2 样本 我怎样才能实现它 oauth2 2 条腿 我如何禁
  • POST 请求“访问此资源需要完全身份验证”

    是否有人在尝试使用 POST 请求 oauth token 进行身份验证时遇到错误 访问此资源需要完全身份验证 卷曲命令 curl localhost 85 oauth token d grant type password d clien
  • 如何使用 SPNEGO 和 CAS 获取 LDAP 用户属性?

    使用 CAS 5 3 x 和 SPNEGO Kerberos 身份验证 如何获取除 SAMAccountName 之外的更多用户属性 当我只使用 标准 LDAP 身份验证处理程序时 我可以放置以下配置 cas authn ldap 0 pr
  • ASP.NET MVC 防伪造令牌不安全

    在没有 ssl 的情况下向服务器发出请求时 我实际上可以看到 MVC3 框架以纯文本形式生成的验证令牌密钥 该密钥存储在名为 RequestVerificationToken Lw 的 cookie 中 在混合安全环境中 实际上可以在向非
  • 如何以编程方式设置单元格颜色 epplus?

    我想知道是否可以使用 epplus 以编程方式设置单元格颜色 我从 sql 存储过程加载数据并且运行良好 但我的用户想要 包含 年假 一词的单元格的背景颜色为浅黄色 而不是默认的白色 有没有办法做到这一点 也许通过迭代数据表 下面是哪里 p
  • 如何在asp.net中按下按钮后刷新Gridview

    我正在尝试制作一个简单的图书馆数据库 我在网格视图中列出搜索结果 然后有一个文本框和一个按钮 用户输入 isbn 并单击贷款按钮 然后 如果有足够数量的物品 itemNumber gt 0 则由用户借出 这是用户界面的屏幕截图 我的问题是
  • 安全网络登录示例/教程[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 为 Web 应用程序创建登录表单的方法有很多种 但大多数方法都存在这样或那样的缺陷 密码以明文形式传输
  • 适用于移动应用程序的 Rails REST API。会议

    我正在创建一个移动应用程序 该应用程序拥有用户并与后端的自定义 Rails REST API 进行通信 我应该在登录时创建会话吗 或者我应该在每个请求中发送用户名和密码 如果会议是可行的方法 那么通常是如何实施的 只需生成令牌 并使用它们来
  • Zend 框架会话丢失

    我有一个注册表单 当用户注册时 它会将他重定向到他的页面 在 Firefox 和 Chrome 中一切正常 但在 Internet Explorer 中则正常 看起来保存用户信息后 会话就关闭了 并且不会将用户重定向到他的页面 我该如何解决
  • WatiN 还是 Selenium? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在sql server 2008中插入新记录时如何检查数据库中的值是否已存在

    我创建了一个存储过程 用于从表中选择值 如果该值已经存在 那么它将更新该值 但如果不存在 那么它将插入新值 我为此使用了存储过程 如下所示 Create PROCEDURE dbo sp Insert Tid int NULL Quid i
  • qTip2 jquery 与 asp.net 文本框

    我怎样才能实现jquery插件qTip2http craigsworks com projects qtip2 http craigsworks com projects qtip2 与 asp net 文本框 鼠标悬停时的优雅工具提示
  • App Engine 的 Google Cloud Storage 身份验证

    我们希望开始使用 Google Cloud Storage 作为用户上传文件的持久存储 不幸的是 我无法添加应用程序标识 应用程序 ID appspot gserviceaccount com 到我们的 团队 因为我们的团队基于 Googl
  • 编译器失败,错误代码-1073741819

    我们遇到以下错误 而且每次都需要重启服务器 The compiler failed with error code 1073741819 此外 ASP Net 工作正常 只有 ASP Net MVC 应用程序无法工作 任何想法 我的错误代码
  • “$(document).ready”函数的替代方案

    我在 aspx 页面中使用 fancybox 对于灯箱 文档就绪功能在此页面中不起作用 有人告诉我编写一个新的 JavaScript 代码来加载该页面中的灯箱 包括 jQuery 检查网络选项卡 确保您没有收到 404 检查控制台是否没有收
  • 逆向工程 ASP.NET Web 应用程序

    我有一个 ASP NET Web 应用程序 我没有源代码 该 bin 包含 10 个程序集和一个 compiled 文件 我在 App Code dll 上使用 Reflector 它向我显示了类和命名空间之类的东西 但它太混乱了 有没有什
  • Google App Engine 中的自定义身份验证

    有谁知道或知道我可以在哪里学习如何使用 Python 和 Google App Engine 创建自定义身份验证流程 我不想使用 Google 帐户进行身份验证 并且希望能够创建自己的用户 如果不是专门针对 Google App Engin

随机推荐

  • PHP PDO 返回单行

    我有以下脚本 在我看来 由于 foreach 部分 它非常适合从数据库返回许多行 如果我知道我总是只能从数据库中获取 1 行 我该如何优化它 如果我知道我只会从数据库中获取 1 行 我不明白为什么需要 foreach 循环 但我不知道如何更
  • 在having 子句中使用MIN 函数

    我想获取最低工资的员工姓名 有没有一种方法可以仅使用一个查询来完成此操作 我在下面给出了我的查询 它不起作用 因为having子句需要一个条件 有没有什么方法可以在having子句中给出一个条件来检索最低工资的员工姓名 SELECT fir
  • 监听 MongoDB 驱动程序中的重新连接事件

    我想向 MongoDB 连接添加事件侦听器 以便在连接断开 每次重新连接尝试以及成功重新连接尝试时运行某些内容 我阅读了所有官方文档和API 但找不到解决方案 目前 我有这个 但只有超时事件有效 如果我们尚未初始化 MongoClient
  • 警告:preg_replace() [function.preg-replace]:编译失败:在偏移量 1 处没有可重复的内容

    有人可以帮助调试这个错误吗 警告 preg replace function preg replace 编译失败 在偏移量 1 处没有可重复的内容 Generate uid function gen uid len 40 hex md5 w
  • GHC 包被隐藏

    我正在尝试运行这个简单的例子 我从哈斯克尔维基 import GHC import GHC Paths libdir import DynFlags main defaultErrorHandler defaultFatalMessager
  • 这个四元数旋转代码是如何工作的?

    我试图了解四元数旋转是如何工作的 我找到了这个迷你教程http www julapy com blog 2008 12 22 quaternion rotation 但他做出了一些我无法锻炼的假设 比如我该怎么做 只需绕轴旋转矢量即可计算出
  • VB.NET 换行拆分(C# 转换)

    我正在尝试将此代码从 C 转换为 VB NET string lines theText Split new string r n n StringSplitOptions None 这就是我所拥有的 问题是它在消息框中打印整个文本框内容
  • Asp.Net Core:调试-附加到进程不起作用

    我们用来调试 Net Framework 中正在运行的 IISExpress 进程的方法是在 Visual Studio 中附加一个名为 iisexpress exe 的进程 但附加iisexpress进程在 Net core中不起作用 它
  • linq 中的动态属性名称

    我正在尝试编写一个采用动态属性名称的 linq 查询 例如 如果属性名称是 test 则简单的查询将如下所示 var test testList Select x gt x test Distinct ToList 但我想动态生成属性名称
  • JavaFX 中的画笔描边

    我正在尝试用 JavaFX 编写一个绘画应用程序 我想要一个类似于真正画笔的画笔 但我不知道如何启动算法 下面的代码显示了我当前的画笔描边 虽然它是一个有用的描边 但它并不是真正的画笔 import javafx application A
  • 第二个 form.submit() 在 XP 上的 Safari 中不起作用,在其他浏览器上起作用

    我有一些代码 当您单击我的页面上的某些内容时 使用 form submit 打开另一个窗口 它在 IE 6 8 Firefox 和 Chrome 以及 Mac 上的 Safari 中运行良好 但在 Windows XP 上的 Safari
  • jquery 插件太多?

    我正在开发一个网站 但我意识到 除了主 javascript 文件的链接和 jquery 文件的链接之外 它开始看起来像是还有三个或更多插件的链接 我只是想知道这是否是好的做法 我正在构建的网站是一个网络应用程序 因此我需要很多功能 但我不
  • python 多久刷新一次文件?

    Python 多久刷新一次文件 Python 多久刷新一次到标准输出 我不确定 1 至于 2 我相信Python在每一个新行之后都会刷新到stdout 但是 如果您将标准输出重载到文件中 它会经常刷新吗 对于文件操作 Python 使用操作
  • 排序算法是否应该在比较函数中传递相同的元素

    libcxx 的 std sort c 标准的 llvm 版本 库 调用具有相同元素的比较谓词 即 比较函子的两个参数都引用相同的位置 要排序的序列 一个简化的例子来说明这一点 cat a cc include
  • 迁移到 mysql 5.7 后查询非常慢

    我有一个 MySQL 数据库 其中包含 InnoDB 表 总计超过 10 GB 的数据 我想将其从 MySQL 5 5 迁移到 MySQL 5 7 我有一个查询 看起来有点像 SELECT dates date count mySub2 m
  • 如何检测android中是否存在麦克风?

    我的应用程序中有一个语音识别部分来捕获用户的语音输入 这就是我所做的 Intent voiceIntent new Intent RecognizerIntent ACTION RECOGNIZE SPEECH startActivityF
  • 查找存储依赖项的 Maven 存储库

    我正在开发一个包含多个公司远程 Maven 存储库的项目 每个存储库托管数十个依赖项 整个项目使用数百个依赖项 我需要一种方法快速确定依赖项存储在哪个远程存储库上 Maven 是否提供了一种简单的方法来执行此操作 还是我需要自己搜索每个存储
  • 单击栏或按钮外部时隐藏菜单侧边栏

    我正在尝试制作一个像语义 UI 一样的菜单 但我只实现了单击菜单按钮并打开菜单 反之亦然 我使用切换类来显示侧边栏 但我不知道这种方式是否完全正确 div class menu button div menu button click fu
  • 表单中 type="submit" 的纸张按钮未提交?

    我正在尝试使用paper button with type属性设置为submit 就像人们所做的那样button元素 提交封闭的form 但由于某种原因无法提交表格 这是错误还是功能 怎么做paper button提交表格 PS 我在 da
  • 浏览器关闭后删除身份验证/会话 cookie

    浏览器关闭后 cookie 继续存在需要哪些具体步骤 目前我有 createPersistentCookie set to true on LoggedIn event 指定机器密钥 表单滑动过期设置为true 只要浏览器打开 用户就会保持