为什么在基于 Identity Cookie 的身份验证中一段时间​​后 User.Identity.IsAuthenticated 设置为 false

2024-01-21

我正在使用 EF core 在 asp.net core 2.0 中开发 API。我已经在中配置了身份cookie身份验证startup.cs如下。

services.ConfigureApplicationCookie(options =>
{
    // Cookie settings
    options.Cookie.HttpOnly = true;
    options.Cookie.Name = "example-cookie-name";
    options.Cookie.SecurePolicy = CookieSecurePolicy.SameAsRequest;
    options.Cookie.SameSite = SameSiteMode.None;
    options.ExpireTimeSpan = TimeSpan.FromDays(14); 
    options.SlidingExpiration = true;
    options.Cookie.Expiration = TimeSpan.FromDays(14);
});

当用户登录 api 时,它会创建一个 cookie,将过期时间设置为1969-12-31T23:59:59.000Z(摘自 Chrome 浏览器 F12)。经过一段时间(20-30)分钟后,所有的索赔都不再存在。

Also, User.Identity.IsAuthenticated已设置为false。因此,我无法解析数据库上下文(利用声明值)。

这是 ASP.NET Identity Core 中的预期行为吗?如果是这样,我如何使用中间件解决方案来删除 cookie 或其他一些解决方法来做到这一点?因为一旦cookie被删除,用户就可以重新登录。

内容已更新

services.AddIdentity<User, Role>()
.AddEntityFrameworkStores<DataContext>()
.AddDefaultTokenProviders();

Also in

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
 ...
 app.UseAuthentication();
 app.UseContextAuthorizeValidatorMiddleware();
 app.UseMvc();
}

Inside UseContextAuthorizeValidatorMiddleware,我查了一下,

public Task Invoke(HttpContext httpContext)
{
  var isAuthenticated = httpContext.User.Identity.IsAuthenticated;
 //...
  return _next(httpContext);
}

None

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

为什么在基于 Identity Cookie 的身份验证中一段时间​​后 User.Identity.IsAuthenticated 设置为 false 的相关文章

  • 尝试了解使用服务打开对话框

    我已经阅读了有关使用 mvvm 模式打开对话框的讨论 我看过几个使用服务的示例 但我不明白所有部分如何组合在一起 我发布这个问题寻求指导 以了解我应该阅读哪些内容 以更好地理解我所缺少的内容 我将在下面发布我所拥有的内容 它确实有效 但从我
  • 在 CPP 类中将 C 函数声明为友元

    我需要在 C 函数中使用类的私有变量 我正在做这样的事情 class Helper private std string name public std getName return name friend extern C void in
  • 转换 const void*

    我有一个函数返回一个const void 我想用它的信息作为char 我可以将它投射为 C 风格的罚款 char variable但是当我尝试使用reinterpret cast like reinterpret cast
  • java中如何重新初始化int数组

    class PassingRefByVal static void Change int pArray pArray 0 888 This change affects the original element pArray new int
  • cpp.react库的C++源代码中奇怪的“->* []”表达式

    这是我在文档中找到的 C 片段cpp react 库 https github com schlangster cpp react implicit parallelism auto in D MakeVar 0 auto op1 in g
  • 如何在 C# Designer.cs 代码中使用常量字符串?

    如何在 designer cs 文件中引用常量字符串 一个直接的答案是在我的 cs 文件中创建一个私有字符串变量 然后编辑 Designer cs 文件以使用此变量 而不是对字符串进行硬编码 但设计者不喜欢这样抛出错误 我明白为什么这行不通
  • 不同 C++ 文件中的相同类名

    如果两个 C 文件具有相同名称的类的不同定义 那么当它们被编译和链接时 即使没有警告也会抛出一些东西 例如 a cc class Student public std string foo return A void foo a Stude
  • 获取没有显式特征的整数模板参数的有符号/无符号变体

    我希望定义一个模板类 其模板参数始终是整数类型 该类将包含两个成员 其中之一是类型T 另一个作为类型的无符号变体T 即如果T int then T Unsigned unsigned int 我的第一直觉是这样做 template
  • 从网页运行 ClickOnce 应用程序,无需用户操作

    我们有一个基于 Java 的 Web 应用程序以及用 C 编写的相同应用程序 如果 java 检查器发现客户端计算机上没有安装 Java 则应该运行该应用程序 这个想法是运行 C 单击一次 http en wikipedia org wik
  • 如果输入被重定向则执行操作

    我想知道如果我的输入被重定向 我应该如何在 C 程序中执行操作 例如 假设我有已编译的程序 prog 并且我将输入 input txt 重定向到它 我这样做 prog lt input txt 我如何在代码中检测到这一点 一般来说 您无法判
  • 将二变量 std::function 转换为单变量 std::function

    我有一个函数 它获取两个值 x 和 y 并返回结果 std function lt double double double gt mult double x double y return x y 现在我想得到一个常量 y 的单变量函数
  • 将函数参数类型提取为参数包

    这是一个后续问题 解包 元组以调用匹配的函数指针 https stackoverflow com questions 7858817 unpacking a tuple to call a matching function pointer
  • C++ 对象用 new 创建,用 free() 销毁;这有多糟糕?

    我正在修改一个相对较大的 C 程序 不幸的是 并不总是清楚我之前的人使用的是 C 还是 C 语法 这是在一所大学的电气工程系 我们 EE 总是想用 C 来做所有事情 不幸的是 在这种情况下 人们实际上可以逃脱惩罚 但是 如果有人创建一个对象
  • 模板类中的无效数据类型生成编译时错误?

    我正在使用 C 创建一个字符串类 我希望该类仅接受数据类型 char 和 wchar t 并且我希望编译器在编译时使用 error 捕获任何无效数据类型 我不喜欢使用assert 我怎样才能做到这一点 您可以使用静态断言 促进提供一个 ht
  • 如何解压 msgpack 文件?

    我正在将 msgpack 编码的数据写入文件 在编写时 我只是使用 C API 的 fbuffer 如 我为示例删除了所有错误处理 FILE fp fopen filename ab msgpack packer pk msgpack pa
  • WPF DataGrid / ListView 绑定到数组 mvvm

    我们假设你有 N 个整数的数组 表示行数的整数值 在模型中 该整数绑定到视图中的 ComboBox Q1 如何将数组 或数组的各个项目 绑定到 DataGrid 或 ListView 控件 以便 当您更改 ComboBox 值时 只有那么多
  • Visual Studio 2015 - Web 项目上缺少共享项目参考选项卡

    我从 MSDN 订阅升级到 Visual Studio 2015 因为我非常兴奋地阅读有关共享项目的信息 当我们想要做的只是重用代码时 不再需要在依赖项中管理 21382 个 nuget 包 所以我构建了一个测试共享项目 其中包含一些代码
  • EntityFramework 6.0.0.0 读取数据,但不插入

    我创建了一个基于服务的数据库 folderName gt Add New Item gt Data gt Service based Database文件到 WPF 应用程序中 然后我用过Database First方法并创建了Person
  • 没有“对 *this”功能的右值引用的解决方法

    我有一个围绕可移动对象的代理容器类 并希望代理能够隐式生成对底层对象的右值引用 但仅当代理本身被移动时 我相信我将能够按照提案 n2439 实施此行为 将移动语义扩展到 this http www open std org jtc1 sc2
  • 为什么空循环使用如此多的处理器时间?

    如果我的代码中有一个空的 while 循环 例如 while true 它将把处理器的使用率提高到大约 25 但是 如果我执行以下操作 while true Sleep 1 它只会使用大约1 那么这是为什么呢 更新 感谢所有精彩的回复 但我

随机推荐

  • Rust 似乎在内存中为布尔数组分配与 8 位整数数组相同的空间

    Running fn main println std mem size of lt u8 1024 gt println std mem size of lt bool 1024 gt 1024 1024 这不是我所期望的 所以我编译并在
  • 找不到 Alamofire 框架

    我正在尝试将 alamofire 安装到我的项目中 以便我可以将图像上传到我的服务器 但是我似乎找不到alamofire framework文件 我已经下载了两次 git 完成了安装说明https github com Alamofire
  • SQL NOT IN 子句

    我有一个查询未按预期工作 Q1 SELECT id name FROM vw x WHERE id NOT IN select pid from table x GROUP BY id name Having max c date gt G
  • SQL Server:存储过程的 EXECUTE AS 子句未授予 sysadmin 权限

    我开发了一个存储过程 以便从备份文件恢复数据库并向其中添加应用程序用户 该存储过程属于master 数据库 问题是我的 IT 部门不允许我使用管理员用户 只能使用 sysadmin 用户的 EXECUTE AS 语句 我可以恢复数据库 但找
  • 为什么要设置线程的Terminal属性?

    我有多线程应用程序 procedure TGridUpdater Execute begin inherited CodeSite Send Thread executed sp ConnectionFactory GetConnectio
  • 这是使用和测试利用工厂模式的类的正确方法吗?

    我对工厂模式没有太多经验 我遇到过一种情况 我认为这是必要的 但我不确定我是否正确实现了该模式 并且我担心它的影响对我的单元测试的可读性有影响 我创建了一个代码片段 它 根据记忆 近似于我正在工作的场景的本质 如果有人能看一下它并看看我所做
  • 如何隐藏/加密谷歌和其他浏览器中网络选项卡的ajax请求? [复制]

    这个问题在这里已经有答案了 我正在 jwplayer 上工作 我只想隐藏 加密 jwplayer 发送的用于播放视频的 ajax 请求 原因是 当 jwplayer 发送请求时 它包含视频 ID 我不想透露它 因为它是从 google 驱动
  • 使用预填充的核心数据部署应用程序

    我正在尝试将我的应用程序与Core Data已经有人居住 我找到了一些链接 其中解释了如何执行此操作 但要么不起作用 要么答案非常旧 我跟着发帖但不起作用 解决方案可能是导入 sqlite文件到应用程序文件夹 然后将它们复制到设备的文件系统
  • 创建 C# 安装程序的最佳方法

    我使用 Visual C 2008 Express 版 我希望能够为我拥有的项目创建一个安装程序 我可以使用发布工具来完成此操作 但您几乎无法控制 有没有免费的方法可以做到这一点 或者我需要使用 VS2008 的完整版本 或者 我发布时是否
  • 将变量从 [HttpPost] 方法传递到 [HttpGet] 方法

    我将视图从 HttpPost 方法重定向到 HttpGet 方法 我已经让它工作了 但想知道这是否是最好的方法 这是我的代码 HttpPost public ActionResult SubmitStudent StudentViewMod
  • 将灰度滤镜应用于 div

    尝试对主背景上方的 div 应用灰度滤镜 想知道这是否可以通过 jQuery CSS3 或 HTML5 实现 我正在尝试一些新的 CSS3 HTML5 技术 但没有成功 我无法将其保存为两个图像 因为背景需要拉伸全尺寸 因此它在每个屏幕上不
  • itgenobr001:找不到客户端。与 Exact Online 比利时合作的数据接入点

    我们刚刚入住https ecotaksen be https ecotaksen be Exact 上的查询和更新运行良好 但安装生产许可证后出现错误itgenobr001 Client not found occurs 我的数据容器规范是
  • 填充下拉列表客户端。收到回发验证错误

    我有一个带有两个下拉列表的网络控件 当您从第一个下拉列表中选择某些内容时 第二个下拉列表就会相应地填充 当回发发生时 我得到旧的 回发或回调参数无效 事件验证已启用 使用于 配置或 在 页 出于安全目的 这 功能验证参数 回发或回调事件发起
  • JQuery 事件不适用于生产中的 heroku,但适用于开发中

    这似乎是一个常见问题 但我还没有找到适用于我的情况的解决方案 我在 bikes js coffee 中有一些 JQuery 在本地开发中可以正常工作 当我推送到 Heroku 时 bikes js coffee 中的脚本不会运行 浏览器的
  • Boost::几何联合简化 - 它是如何工作的?

    Boost 中有很棒的几何库 它还允许绘制 SVG 图像 我想在我的一些项目中使用它 但它对我来说真的很奇怪 见下图 所以我们有 3 个像素点 在 2d 空间中表示为正方形 1 1 0 1 pic 1 我们想从它们那里得到一个并集并简化它
  • 无法使用 Selenium 的 chrome 驱动程序

    我在使用 Selenium 的 Chrome 驱动程序时遇到问题 我已下载 chromedriver 并将其保存到 C Chrome driver webdriver Chrome executable path C Chrome 使用它会
  • 如何将 X 和 Y 转换为纬度和经度

    我有一张桌子叫IK TEMP它包含名为 data range 的列 String sql SELECT DATA RANGE FROM IK TEMP try Connection conn this connect Statement s
  • 在 Android 上横向模式下隐藏 URL 地址栏

    使用 JavaScript 如何在横向模式下滚动经过 URL 栏 在纵向模式下 您只需执行 window scrollTo 0 1 即可 但在横向模式下则不起作用 它在 URL 栏上部分运行 关于尝试什么有什么建议吗 有两种方法可以做到这一
  • 如何加速简单连接

    我不擅长SQL 我正在寻找一种方法来加速像这样的简单连接 SELECT E expressionID A attributeName A attributeValue FROM attributes A JOIN expressions E
  • 为什么在基于 Identity Cookie 的身份验证中一段时间​​后 User.Identity.IsAuthenticated 设置为 false

    我正在使用 EF core 在 asp net core 2 0 中开发 API 我已经在中配置了身份cookie身份验证startup cs如下 services ConfigureApplicationCookie options gt