如何保留使用 MCV5/OWIN 更新的 cookie 声明

2024-04-23

我们正在开发一个 OWIN MVC5 项目。我们使用自己的实现IUserStore<T>整合用户管理,这是我们公司框架的一部分。到目前为止这工作正常。 我们希望通过声明提供角色成员资格和其他安全配置。我已经看到(并很快测试了)两种实现方式IUserClaimStore<T>或附加一个ClaimsIdentityFactory到用户管理器。

在这两种情况下,我都看到以下问题:声明存储在用户的 cookie 中,并且当 Web 应用程序后面的角色或另一个声明发生更改(通过另一个直接访问用户管理存储的应用程序)时,用户 cookie 包含旧的声明,并且用户拥有的权限过多或过少。

我想到的一种可能性是,检查每个请求或某个时间间隔内的请求,用户声明的后端配置是否已更改,如果是,则刷新用户 cookie。

这是正确的方法吗?或者 MVC5/Owin 是否有更优雅/更有效的方法来满足此要求。如果这是正确且唯一的方法,那么检查和刷新 cookie 信息最有效的位置在哪里?


我们将此功能添加到 2.0,以下是您如何配置 CookieMiddleware 以每 30 分钟获取一次新的声明(regenerateIdentity 应调用用于在用户登录时为用户生成 ClaimsIdentity 的代码,并且 validateInterval 控制调用 regenerateIdentity 的频率,但前提是旧的 cookie 仍然有效)

        app.UseCookieAuthentication(new CookieAuthenticationOptions {
            AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
            LoginPath = new PathString("/Account/Login"),
            Provider = new CookieAuthenticationProvider {
                OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
                    validateInterval: TimeSpan.FromMinutes(30),
                    regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
            }
        });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何保留使用 MCV5/OWIN 更新的 cookie 声明 的相关文章

  • Cookie 与 FormsAuthentication.SetAuthCookie() 方法的混淆

    StackOverflow 上有很多关于此的帖子 但我仍然无法解决我的确切问题 要点如下 我有一个需要身份验证的网站 我正在使用标准 NETFormsAuthentication SetAuthCookie 保持用户会话的方法 我的问题是这
  • ASP.NET MVC 4 cookie 消失

    我有一个 ASP NET 应用程序 它将身份验证 cookie 发送到 ASP NET MVC 应用程序 用作后台应用程序 我添加了一个全局过滤器 用于检查身份验证 cookie 的每个控制器操作 如果cookie存在 则允许用户进入该页面
  • Cookie - 跨多个域设置

    我公司的设置如下 子域 1 域 1 子域名2 域名1 com 子域名3 域名1 com 子域名4 域名1 com 子域名5 域名1 com 子域名6 域名1 com 子域 1 域 2 子域 2 域 2 subdomain3 domain2
  • 使用 Postman 获取并存储 cookie 的值 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我需要获取 cookie 的值 该值仅在我在邮递员中发送请求时创建 我已经尝试了一切 但我不知道如何实现这一目标 我还需要存储该值以便在我的
  • Rails 3 session_store 域 :all 的作用是什么?

    更新了问题以使其更清楚 据我所知 您可以设置 session store 的域以在子域之间共享会话 如下所示 Rails application config session store cookie store key gt my key
  • HttpCookie 和 Cookie 的区别?

    所以我很困惑 因为 msdn 和其他教程告诉我使用 HttpCookies 通过 Response Cookies Add cookie 添加 cookie 但这就是问题所在 Response Cookies Add 只接受 Cookie
  • 为什么我们在 Javascript 中将秒乘以 1000 来添加时间

    我正在研究 cookie 我在 Stack Overflow 上发现了一些问题 这些问题已经得到解答 我在问题中看到答案将秒乘以 1000 我想知道 getTime 返回什么格式 这需要乘以 1000 让cookie在30秒后过期 http
  • iOS 全屏 Web 应用程序会丢弃 cookie?

    我经历过 当您启动 退出保存到仪表板 全屏模式 的网络应用程序时 iOS4 会丢弃 cookie 这是真的吗 有解决方法吗 这不是一个错误 这是一个功能 会话 cookie 即生命周期为 0 的 cookie 会在浏览器会话结束时被删除 在
  • Safari 不设置 cookie,但 Chrome 和 Firefox 会设置

    我正在将请求从本地主机发送到第三方服务器以使用 REST API 获取数据 后端使用cookies JSESSIONID 来了解是否发送数据 在 Chrome 中一切正常 我可以在 Chrome 浏览器的 应用程序 选项卡中看到 Cooki
  • 当用户存储在外部身份提供商服务中时与用户的关系

    我正在尝试为其创建一个 API 和一个网站客户端 最近 我读了很多关于 OAuth2 作为安全机制的文章 以及提供身份验证服务的公司 例如auth0 com https auth0 com 甚至 Azure Active Directory
  • 如何在 CRUD 功能中映射复合键

    我需要基于两个键 comp 和part 进行映射 foreach var item in Model tr td Html DisplayFor modelItem gt item comp td td Html DisplayFor mo
  • 将 cookie 设置为在会话结束时过期? ASP.NET

    我很惊讶我找不到任何答案 如何将 cookie 中的 sessionid 设置为在会话结束时过期 当浏览器关闭或用户一段时间不活动时 我发现的两个解决方案是 httpcookie Expires HttpContext Current Se
  • 在 Javascript 中设置多个 cookie

    我正在尝试设置多个 cookiedocument cookie 但不幸的是只有一个被添加 我知道网上有多个设置此类 cookie 的示例 我遵循了其中之一 但我仍然无法解决这个问题 我跟着这个link http www elated com
  • Dapper MySQL 返回值

    我在 ASP net Identity 项目中使用 dapper 和 MySql 时遇到问题 我想将用户插入到表 users 中 并希望从这次插入中返回自动生成的 id 但我收到语法错误 我不知道为什么 这是我的方法插入代码 public
  • 如何使用 ASP.Net Core Identity 从登录用户检索 Google 个人资料图片?

    好的 我目前正在使用 ASP NET Core 1 1 2 和 ASP NET Core Identity 1 1 2 其中重要的部分是启动 cs看起来像这样 public void Configure IApplicationBuilde
  • AspNet.Identity 自定义用户和自定义角色应该很简单;我缺少什么?

    使用来自的示例http www asp net identity http www asp net identity我已经走到这一步了 这RoleManager工作完美 我对待UserManager相同 我认为一切都是正确的 但我似乎无法更
  • 使用 Rails 自动登录?

    我正在尝试使用 Rails 的 Restful Authentication 插件建立一个简单的身份验证系统 我只是想知道它是如何工作的 b c 我似乎无法弄清楚 cookie 的要求是什么 以及如何做到这一点浏览器始终会记住您 6 个多月
  • 使用 Azure 表存储进行代码优先和身份验证

    我正在开发一个小型网络应用程序 并且刚刚达到开发阶段 我需要开始做出数据库决策 我最初的计划是在 Azure 上使用 EF Code First 和 MSSQL 因为它只是简化了使用数据库的过程 然而 当我研究 Azure 上的数据库托管功
  • 将列添加到 ASP.NET Identity 中的 AspNetUserClaims

    我在用着Microsoft AspNet Identity Core 2 2 1在我的解决方案中 我需要将其与另一个应自动添加声明的系统集成 为了跟踪哪些声明是手动添加的以及哪些是由外部系统创建的 我希望在我的AspNetUserClaim
  • MVC Owin Identity 2 CheckPasswordAsync() 将不会执行

    我有两个问题似乎彼此相关 并且 stackoverflow 中的其他重复项都不能回答我的问题 First当 的时候PasswordSignInAsync方法执行它永远不会停止或抛出任何异常它只是继续执行 var result await S

随机推荐

  • 如何立即查看 AppCode 中的 Swift 错误?

    有没有办法立即看到 AppCode 中的 Swift 错误 在他们的网站上 他们谈论静态代码分析 但我找不到任何地方可以声称这种情况会立即发生 当您在 Xcode 中输入一些 Swift 代码时 您通常会立即看到警告 错误等 在 AppCo
  • 通过 WCF 进行日志记录而不减慢速度

    我们的应用程序中有一个每月运行一次的大型流程 此过程通常运行约 30 分钟 并生成约 342000 个日志事件 最近 我们使用 WCF 将日志记录更新为集中式模型 但现在遇到了性能问题 以前的解决方案大约需要 30 分钟即可完成 但采用新的
  • cygwin + Windows套接字编程

    我正在尝试学习 Windows 中的 Socket 编程 并使用 cygwin 来实现同样的目的 我发现所需的文件位于 usr include w32api 我从网上获取了一个示例程序并尝试编译但无法这样做 相同的代码是 include
  • 在Tensorflow中,sampled_softmax_loss和softmax_cross_entropy_with_logits有什么区别

    在张量流中 有一些方法称为softmax cross entropy with logits https www tensorflow org versions master api docs python tf nn softmax cr
  • 如何使用具有圆角背景的文本覆盖图像

    我需要在 HTML 中复制您在此图中看到的内容 问题是文本覆盖了 div 和背景图像 如果外部 div 中没有图像并且没有纯色 我可以想象我可以相当轻松地使用一些带有圆角的小 html 元素放置在正确的位置来完成此操作 但是背景图像是是什么
  • 使用 PHP MySQL 创建嵌套 JSON

    我有一个返回某些字段的 SQL 查询 我正在使用json encode 获取 JSON 格式的数据 但是我无法以我想要的格式获取它 PHP代码
  • 递归函数提取所有叶节点

    我正在尝试递归遍历 json 树并提取所有叶节点 子节点 null 并返回一个平面列表 我没有得到完整的清单 我只得到一件物品 我想我已经快到了 但我不太清楚我在这里犯了什么错误 请指教 let cluster children child
  • 获取选定的文本位置

    目前 我正在浏览器中获取选定的文本 执行以下操作 window getSelection 现在 当按下自定义键时 我需要在该文本上方显示一个工具提示 请注意 鼠标不能再位于文本上方 因此为了做到这一点 我需要该所选文本的绝对位置 有没有办法
  • 将面板添加到框架,但在应用程序运行时不显示[重复]

    这个问题在这里已经有答案了 我正在创建一个应用程序 框架中有两个面板 顶部有一个菜单栏 菜单栏显示得很好 到目前为止设置的任何操作都有效 但其他两个面板从未出现 我尝试重新追踪将它们添加到框架上的所有面板和线条 但找不到任何错误 两个窗格中
  • 为什么访问 PerformanceCounter 会导致第 2 代垃圾回收

    当我从 C 应用程序中访问某些 PerformanceCounters 时 我看到一些奇怪的行为 例如 当我访问 Process Private Bytes 时 似乎我得到了很多第 2 代垃圾收集 对于其他进程计数器来说似乎也是如此 下面的
  • 如何使用短信内容提供商?文档在哪里?

    我希望能够读取系统的短信内容提供商 基本上我想制作一个短信应用程序 但只有当我可以看到过去的线程等时它才会有用 似乎有一个内容提供程序 但我找不到它的文档 有人知道它在哪里吗 Thanks 编辑 好的 我找到了一种获取短信收件箱提供程序的方
  • Node.js:如何将参数的值从终端传递到JS脚本

    Given a jsdom based svgcreator node js脚本文件 var jsdom require jsdom jsdom env CREATE DOM HOOK http d3js org d3 v3 min js
  • 在使用 ant 为库项目构建 Android 测试时,如何使用 emma 过滤器?

    从这个问题 使用 ant 构建 Android 测试时如何使用 emma 过滤器 https stackoverflow com questions 7360972 how can i use filter for emma when bu
  • 谷歌电子表格中的数据绑定?

    是否可以编写一个将两个单元 绑定 在一起的谷歌应用脚 本 例如 如果编辑一张工作表中的单元格 它将自动更新另一张工作表中的匹配单元格 因此 如果sheet1在单元格A1中有一个表示 花费的钱 的值 并且sheet2在单元格B4中有一个表示相
  • 使用 C++ 中的 java 套接字接收浮点数

    我需要使用套接字从 C 客户端到 java 服务器接收包含浮点数的数组或类 但 InputStreamReader 没有得到正确的结果 任何原因 任何有关更简单方法的建议将不胜感激 谢谢 Java服务器代码 public static vo
  • 检测流中的重复组

    我想确保列表中的所有数字都分组在一起 让我用例子来解释这一点 1 1 1 2 2 OK two distinct groups 1 1 2 2 1 1 Bad two groups with 1 1 2 3 4 OK 4 distinct
  • 缩放变换导致与 Flex 布局的渲染间隙

    我使用 Flex 布局来渲染具有 3 个大小均匀的列的容器 div 它的工作原理正如我所期望的那样 直到我应用比例变换 当容器缩小时 内容框之间会出现细小的间隙 该问题发生在 MacOS Chrome 和 Safari 上 但不会发生在 F
  • 使用 ggplot2 对多个梯度进行分组

    我对 R 还很陌生 所以如果答案显而易见 或者我的数据组织得不好 我深表歉意 我试图绘制声音字符 熵 随时间的差异 我使用拍号信息将录音分成 回合 我能够创建一个散点图 其中的线条对应于回合数 0 9 代码看起来像这样 newbout lt
  • DataGrid 格式中的 WPF RichTextBox 混乱

    我需要在 DataGrid 的列中使用 RichTextBox 这是通过 xaml 完成的
  • 如何保留使用 MCV5/OWIN 更新的 cookie 声明

    我们正在开发一个 OWIN MVC5 项目 我们使用自己的实现IUserStore