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

HttpContext.User.Identity在发布模式下不起作用

是因为在发布模式下,ASP.NET Core应用程序默认会启用应用程序的性能优化功能,其中包括将身份验证中间件的用户标识缓存到内存中,以提高性能。这意味着在发布模式下,HttpContext.User.Identity可能会返回缓存的用户标识,而不会实时地从身份验证服务获取最新的用户标识。

要解决这个问题,可以尝试以下几种方法:

  1. 禁用身份验证中间件的用户标识缓存:可以在应用程序的Startup.cs文件中的ConfigureServices方法中添加以下代码来禁用用户标识缓存:
代码语言:txt
复制
services.Configure<SecurityStampValidatorOptions>(options =>
{
    options.ValidationInterval = TimeSpan.Zero;
});

这将禁用用户标识的缓存,使得HttpContext.User.Identity在发布模式下能够实时地获取最新的用户标识。

  1. 使用HttpContext.AuthenticateAsync方法进行身份验证:可以在需要获取用户标识的地方,使用HttpContext.AuthenticateAsync方法来手动进行身份验证,而不依赖于缓存的用户标识。示例代码如下:
代码语言:txt
复制
var result = await HttpContext.AuthenticateAsync();
if (result.Succeeded)
{
    var user = result.Principal;
    // 获取用户标识的逻辑
}

这将确保在发布模式下,HttpContext.User.Identity能够获取到最新的用户标识。

  1. 检查身份验证中间件的配置:确保在应用程序的Startup.cs文件中正确配置了身份验证中间件,并且在Configure方法中正确地使用了UseAuthentication和UseAuthorization方法。示例代码如下:
代码语言:txt
复制
public void ConfigureServices(IServiceCollection services)
{
    // 配置身份验证中间件
    services.AddAuthentication()
        .AddCookie(options =>
        {
            options.Cookie.Name = "YourCookieName";
            // 其他配置选项
        });

    // 其他服务配置
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    // 其他中间件配置

    // 使用身份验证中间件
    app.UseAuthentication();

    // 使用授权中间件
    app.UseAuthorization();

    // 其他配置
}

确保正确配置身份验证中间件可以解决HttpContext.User.Identity在发布模式下不起作用的问题。

总结起来,要解决HttpContext.User.Identity在发布模式下不起作用的问题,可以禁用用户标识缓存、手动进行身份验证或检查身份验证中间件的配置。这样可以确保HttpContext.User.Identity能够在发布模式下正常工作,并返回最新的用户标识。

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

相关·内容

非归档模式下不能更改表空间为备份模式

Oracle表空间设置为备份模式后,便可以联机对表空间下数据文件进行文件系统级别的copy备份操作,因为期间对表空间的修改都记录到数据库的重做日志文件中。...由此想到数据库如果是非归档模式,那么这个表空间备份模式的时间必须不能超过联机日志被覆盖的时间,才能保证数据的修改不会丢失。 那么Oracle对这种情况是如何择决的呢?...实验表明:Oracle是干脆不让你在非归档模式下开启表空间的备份模式。...01123: cannot start online backup; media recovery not enabled 实验验证如下: 环境:RHEL 6.4 + Oracle 11.2.0.3 1.归档模式下可以开启表空间的备份模式...,发现表空间的备份模式开启将不被允许。

38220

面试官问发布订阅模式问什么?

面试官常问发布订阅、观察者模式,我们日常开发也很常用。文章讲述了 mitt、tiny-emitter、Vue eventBus这三个发布订阅、观察者模式相关的源码。...test', 32432) // 触发 A,C 事件,B 会被漏掉 Emitter.emit('test', 32432) // 触发 B,C,这个是正确的 // 原因解释: // forEach 时,...2. tiny-emitter 源码解读 2.1 主逻辑 所有方法都是挂载 E 的 prototype 内的,总共暴露了 once,emit,off,on 四个事件的方法: function E ()...https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3) } // 所有事件都挂载...mitt > tiny-emitter,开发更友好,对于回调函数参数的管理,tiny-emitter 支持多参数调用的,但是 mitt 提倡使用 object 管理,设计上感觉 mitt 更加友好以及规范

91920
  • ASP.NET MVC 随想录—— 使用ASP.NET Identity实现基于声明的授权,高级篇

    1.理解什么是声明 声明(Claims)其实就是用户相关的一条一条信息的描述,这些信息包括用户的身份(如Name、Email、Country等)和角色成员,而且,它描述了这些信息的类型、值以及发布声明的认证方等...在上述代码中,将HttpContext.User.Identity 转换为ClaimsIdentity 对象,并通过该对象的Claims 属性获取到用户相关的所有声明。...1.启用Google 账户身份验证 ASP.NET Identity 发布了对第三方身份验证的支持,通过Nuget来安装: Install-Package Microsoft.Owin.Security.Google...可以看到一些声明的认证发布者是Google,而且这些信息来自于第三方。...夜生人静时,泡一壶茶,拿上一本书,细细品读,或许会有别样的精彩正等我们。

    2.3K80

    Ai软件Illustrator 2021 for mac -Ai 2021-2023干货功能

    6.大型画布 100 倍大的画布区域上创建大型图稿(例如,广告牌、公交车广告、标牌等),大画布不仅提供更多设计空间,而且具备缩放功能。...错误修复: Applescript 的 do javascript 命令不起作用 lllustrator 使用 M1 Apple 芯片的 MacBook Pro 上崩溃 导出 PNG 时,裁切透明像素功能不起作用...VBscript 在从文件 > 其他脚本运行时不起作用 除非切换了“剪切”或“反相”复选框两次,否则不透明度蒙版编辑模式的实时预览会断开 “使用 GPU 查看”选项“轮廓”模式下不可用 二.安装步骤...温馨提示:若打开Install报错,Install上右键选择显示包内容,依次打开文件夹contents/macos,macos文件夹里面双击install安装即可。

    3.5K20

    TDesign 更新周报(2022年5月第3周)

    中的适配问题,可参考案例 tdesign-vue-next-nuxt-starter Tabs:添加拖拽功能 Anchor:增加 demo 演示功能 Bug Fixes Table:修复 ssr...环境中的兼容 Transfer:修复对 pagination 组件的引用报错 Swiper:slot 执行位置不对,导致vue警告 Steps:修复 readonly 不起作用的问题 Slider...Popup:修复设置 destroyOnClose 后可能出现的异常抖动 Table:拖拽排序,修复参数为 undefined 问题 Table:使用 header-affixed-top 时,异步下不能动态更新列...不支持忽略大小写, 优化过滤状态交互 CheckboxGroup:修复响应式丢失的问题 Transfer:异步赋值 checked 不生效 Menu:修复 width 不生效的问题 Menu:修复暗色模式的...FormList 支持手动赋值 Form:支持 help 节点与错误提示同时展示,无 help 不再默认占位 DatePicker:支持 onChange 返回 trigger 参数定位事件触发源 & 单选模式支持

    2.8K30

    Spring Boot 2.5.5发布:开始支持Java 17了!

    作者 | 冷冷 来源 | https://mp.weixin.qq.com/s/hlxkXLve1krPr9z3DPrNIw 9 月 23 日官方发布了 Spring Boot 2.5.5 版本,此版本包括...-- lookup parent from repository --> bug 修复 修复 端点默认情况下不会清理 SPRING_APPLICATION_JSON #28081 Flyway...和 Spring Integration 的 DataSource 初始化时由于非空模式下导致启动失败#28079 当过滤器抛出 NestedServletException 以外的异常时,Web MVC...并发镜像构建导致删除构建器镜像时出错#27993 独立 Tomcat 中的 War 部署会导致内存泄漏 运行大于 4GB 的 Zip64 jar 文件时出现 IndexOutOfBoundsException #27900 ...推荐一个连载多年还在继续更新的免费教程:http://blog.didispace.com/spring-boot-learning-2x/ 文档调整 使用 AspectJ weaving 时 devtools 重启不起作用

    1.5K20

    Java 近期新闻:JDK 20的JEP提升为Targeted状态,亚马逊云科技推出Lambda SnapStart特性

    该 JEP 更新自 JEP 427,switch 模式模式匹配(第三次预览),更新包括:简化了 switch 标签语法;现在, switch 表达式和语句以及支持模式的其他构造体都支持泛型类型模式和记录模式的类型参数推断...该 JEP Panama 项目的支持下不断演进:JEP 424,外部函数和内存 API(预览), JDK 19 中交付;JEP 419,外部函数和内存 API(第二个孵化器版本), JDK 18...有关该版本的更多详细信息,请参阅发布说明。 JHipster JHipster,已经开始将平台升级到 Spring Boot 3.0。...JHipster 开发团队成员 Matt Raible 提供了团队迄今为止遇到的问题的最新情况,即:BlockHound 需要一个新的 WebFlux 的入口;健康检查在 Elasticsearch 8+ 中不起作用...争相上市、抢夺本土市场,未来三五年数据库将迎来大洗牌 | 解读数据库的2022 颠覆开发模式的创新发布背后,我看见了云计算的下一个十年 覆盖数万研发人员,字节跳动首次公开效能度量核心技术!

    1.5K20

    Nginx listen reuseport参数带来的性能提升

    NGINX发布的1.9.1版本引入了一个新的特性:允许使用SO_REUSEPORT套接字选项,该选项许多操作系统的新版本中是可用的,包括Bsd和Linux(内核版本3.9及以后)。...(对于NGINX Plus客户,此功能将在年底发布的版本7中出现)SO_REUSEPORT选项有许多潜在的实际应用。...对于NGINX而言,启用该选项可以减少某些场景下的锁竞争而改善性能。...设置共享Socket 为了让``SO_REUSEPORT socket```选项起作用,应为HTTP或TCP(流模式)通信选项内的listen项直接引入新近的reuseport参数,就像下例这样: ?...(reuseport 参数 mail 上下文环境下不能用在 listen 指令下,例如email,因为email流量一定不会匹配这种场景。)我们鼓励你先测试而不是直接大规模应用。

    11.2K100

    EventBus 使用总结

    EventBus是一个事件总线框架,观察者模式的变形,利用这个框架,我们可以方便高效地Android组件间传递和处理数据,切换线程,降低代码耦合度。 本文基于 EventBus 3.0。 ?...EventBus的进阶使用 线程模式 EventBus总共有四种线程模式: 1.ThreadMode.POSTING 这是缺省模式,onEvent会在发布事件的线程中运行,即发布事件和接收处理事件将会运行在同一个线程...这种模式下不要在onEvent中执行耗时操作,否则会延迟其他观察者的对事件的接收,阻塞线程。...这种模式下不要在onEvent中执行耗时操作,否则会延迟其他观察者的对事件的接收,阻塞线程。...这种模式下不要在onEvent中执行耗时操作,否则会延迟其他观察者的对事件的接收,阻塞线程。 4.ThreadMode.ASYNC 无论事件在哪个线程发布,都会创建新的子线程来执行onEvent。

    95910

    并发编程-05线程安全性之原子性【锁之synchronized】

    Demo 多线程下同一个对象的调用 多线程下不同对象的调用 修饰静态方法 作用范围及作用对象 Demo 多线程同一个对象的调用 多线程下不同对象的调用 修饰类 作用范围及作用对象 Demo...---- 概述 举个例子: 【多线程场景】假设有个变量a主内存中的初始值为1,线程A和线程B同时从主内存中获取到了a的值,线程A更新a+1,线程B也更新a+1,经过线程AB更新之后可能a不等于3,而是等于...因为A和B线程更新变量a的时候从主内存中拿到的a都是1,而不是等A更新完刷新到主内存后,线程B再从主内存中取a的值去更新a,所以这就是线程不安全的更新操作. 解决办法 使用锁 1....可知,synchronized关键字修饰的代码块,确保了同一调用对象多线程的情况下的执行顺序。...---- 多线程下不同对象的调用 同 修饰代码块 ? 结果: ?

    23420

    Scrivener for Mac如何自定义快捷键

    3、“硬件”部分下,单击“键盘”(或Leopard及以下的“键盘和鼠标”)。 4、“键盘(和鼠标)”窗格中,选择“键盘快捷键”选项卡。...5、左侧列表中选择“应用程序快捷方式”(请注意,Leopard及以下不需要此步骤)。 6、单击“+”按钮。将出现一张纸。 7、从“应用程序”弹出按钮,选择Scrivener。...如果您发现分配的快捷方式不起作用,或者发生了意外情况,则可能是您选择的键盘快捷方式已分配给其他菜单项。...(如果快捷方式仍然不起作用,则应确保您指定的快捷方式不是系统保留的快捷方式。)...发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/141392.html原文链接:https://javaforall.cn

    1.7K20

    9.13笔记

    实心圆)/square(正方形)    } 二、Ol有序列表 1.内部必须有子标签 2.天生自带内外边距 Ol与ul不停之处在于前面的符号 有序列表改变前面的符号用tyle属性修改,标签内...                                          内敛 1.块级元素会独占一行               1.内敛不会独占一行—-不可以设置行高 2.块级可以设置行高                   2.内敛元素的margin上下不起作用...二者转换 块级转行级(display:inline;) 行级转块级(display:block;) 行级块元素(display:inline-block;){可以设置行高、可以一行、margin可以随意使用...} 备注: line-height—行高–设置字体的垂直位置 转载于:https://www.cnblogs.com/mo123/p/9641470.html 发布者:全栈程序员栈长,转载请注明出处:https

    31120

    Human Interface Guidelines —— Tab Bars

    ·通常,使用tab bar来组织app级别的信息 选项卡栏是一种平滑信息层次结构的方式,也能够同时对多个同等信息类别或模式进行访问。...如果您需要能够对当前视图中的元素起作用的控件,请改为使用toolbars。 ·避免有太多标签 每个额外增加的tab都会减少选择tab时的可点击区域,并增加app的复杂性,从而使寻找信息变得更加困难。...·当其功能不可用时,不要删除或禁用tab 如果tab某些情况下可用,但在其他情况下不可用,则您的app界面会变得不稳定并且不可预知。 确保始终启用所有tabs,并解释tab内容不可用的原因。...popover中选择一个tab不应该导致弹出窗口后面的视图发生变化。 ·确保tab bar图标视觉上保持一致和平衡 系统为常见用例提供了一系列预定义的图标。...·使用badging低调沟通 您可以选项卡上显示badge(包含白色文字、数字或感叹号的红色椭圆),以表明与该视图或模式相关的新信息。

    1.4K150

    使用 TypeScript“严格”模式进行类型严格编码

    一些背景信息,我 C 和 C++ 方面有丰富的经验,这些语言通常是类型严格的。但是,当考虑到我花费大量时间开发网站等项目时,我从未真正使用过 TypeScript 或其严格模式。... TypeScript 中工作是一次有趣的经历,严格模式让我想起了 VS 中使用 C/C++ 的感觉。无论如何,这是我解决这个问题时经历的过程。...工作流程幸运的是,这个问题本身给了我一个直接链接到严格模式文档的链接。我浏览了一下,过了一遍启用和维护严格模式代码库的一些检查和要求,然后很快就开始工作了。...这只是对 null 做了一个检查,以确保不期望的情况下不使用 null 值。...这就是空检查起作用的地方。幸运的是,有许多不同的方法来处理这个问题。每当代码需要 minimapWrapper 有一个值时,严格模式就会对我们大声呼喊,除非我们包含这个简单的检查:if(!

    24010

    合约相关概念

    基础概念 全仓:全仓模式的意思是账户里所有可用余额都可以充当担保资产,以避免被强制平仓。这个模式的好处是:只要杠杆适中,爆仓可能性很低,所以经常被用于套期保值。...逐仓:逐仓模式的意思是分配给某仓位的担保资产被限制一定数额。 如果仓位的担保资产不足以支撑浮亏,此仓位将被强制平仓。...所以,波动率较高,杠杆较大的情况下,逐仓模式很容易被强制平仓,但最终的损失仅仅是仓位担保资产,而不影响账户余额。...大周期跟小周期,大级别确认以后,小级别反转趋势就会失效,同向趋势的信号,就会非常有效果,习惯看大级别走势 代表: 红柱:代表一个多头的势能 绿柱:代表一个空头的势能 作用: 趋势性指标 对横盘震荡期不起作用...开始做多; 快线跟慢线都在云下方,快线下穿慢线,这是一个做空开仓点; 三重指数平滑移动平均线(Triple EMA) Bollinger Bands(布林带) 概念:基于均线计算出来的一个区间,其上下不固定

    41020

    Linux下,使用nm命令输出可执行文件的符号表

    对于不记录符号大小的目标文件格式,此选项不起作用,除非使用了--size sort,在这种情况下,将显示计算的大小 -s, --print-armap 当列出库中成员的符号时,同时列出索引。...AIX nm 的默认模式对应于 -X 32,GNU nm 不支持模式 -X 32 --defined-only 仅显示有定义的符号 --no-demangle 不解码低级符号名,这是默认选项 --plugin...只有启用插件支持的情况下构建了工具链时,此选项才可用 --size-sort 按符号大小排列 --special-syms 显示目标相关的具体特殊含义的符号。...这些符号通常被特定目标文件用于某些特殊处理,当包含在正常符号列表中时通常不起作用。...合成符号是链接器为各种目的创建的特殊符号,默认情况下不会显示它们,因为它们不是二进制文件源代码的一部分 --target=BFDNAME 指定系统默认格式以外的目标文件格式 以上就是nm命令的简单用法

    2.5K30
    领券