在构造函数中读取ControllerBase.User

2023-12-10

我想要一个基本控制器,它应该为每个控制器操作设置身份验证变量:

_claimsIdentity = User.Identity as ClaimsIdentity;
_userId = claimsIdentity.FindFirst("ID")?.Value;

不幸的是,ControllerBase.User 在构造函数中为 null,并且 ControllerBase 上没有按照建议覆盖的 Initialize 方法here。 如何制作一个已为每个操作设置这些值的基本控制器?


控制器在管道中较早初始化。User属性已设置。这意味着如果您尝试在构造函数中访问它,它将为空。

当调用操作时,框架已经分配了从请求中提取的必要值。所以建议访问User动作中的属性。

作为在基本控制器构造函数上设置字段的替代方法,您可以使用属性来实现您正在寻找的内容。例如。:

protected ClaimsIdentity ClaimsIdentity => User.Identity as ClaimsIdentity;
protected string UserId => ClaimsIdentity.FindFirst("ID")?.Value;

并从派生子类的操作中访问它们。

子类不会有任何不同 - 唯一的区别是属性的命名约定不同,但如果这个really让你心烦意乱,你could始终使用您以前使用的相同名称。

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

在构造函数中读取ControllerBase.User 的相关文章

  • 使用 Unity 在构造函数中使用属性依赖注入

    好的 我在基类中定义了一个依赖属性 我尝试在其派生类的构造函数内部使用它 但这不起作用 该属性显示为 null Unity 在使用 container Resolve 解析实例后解析依赖属性 我的另一种选择是将 IUnityContaine
  • VB.NET 相当于 C# 属性简写吗?

    是否有与 C 等效的 VB NET public string FirstName get set 我知道你能做到 Public Property name As String Get Return name ToString End Ge
  • 为 Visual Studio 2013 编译 Tesseract

    我正在尝试使用tesseract在 Visual Studio 2013 中 我在链接器 gt 输入 不是 libtesseract302 static lib 中使用 libtesseract302 lib 一切都正常 并且已编译并运行
  • 启动时出现 OData v4 错误:找不到段“Whatever”的资源

    我正在构建新的 v4 服务 一切进展顺利 直到我为新模型 实体添加了新控制器 并在启动站点进行测试运行时收到此错误 控制器似乎编码正确 就像其他控制器一样 控制器 CustomersOData 中的操作 GetFeed 上的路径模板 Cus
  • 将内置类型转换为向量

    我的 TcpClient 类接受vector
  • 互斥体实现可以互换(独立于线程实现)

    所有互斥体实现最终都会调用相同的基本系统 硬件调用吗 这意味着它们可以互换吗 具体来说 如果我使用 gnu parallel算法 使用openmp 并且我想让他们称之为线程安全的类我可以使用boost mutex用于锁定 或者我必须编写自己
  • 生成(非常)大的非重复整数序列而不进行预洗牌

    背景 我编写了一个简单的媒体客户端 服务器 我想生成一个不明显的时间值 随从客户端到服务器的每个命令一起发送 时间戳中将包含相当多的数据 纳秒分辨率 即使它不是真正准确 因为现代操作系统中计时器采样的限制 等 我想做的 在 Linux 上
  • 用于检查项目文件中的项目变量和引用路径的 api

    我正在研究一个 net application VS2010 与 x 没有 解和变量号这些解决方案中的项目数量 我需要检查项目属性 特定于一定数量的项目 是否同质 并且检查 验证构建期间的参考路径 有没有一个API是这样的吗 如果没有 我该
  • ASP.NET:获取自 1970 年 1 月 1 日以来的毫秒数

    我有一个 ASP NET VB NET 日期 我试图获取自 1970 年 1 月 1 日以来的毫秒数 我尝试在 MSDN 中寻找方法 但找不到任何东西 有谁知道如何做到这一点 从 NET 4 6 开始 该方法ToUnixTimeMillis
  • 关于在 Windows 上使用 WiFi Direct Api?

    我目前正在开发一个应用程序 我需要在其中创建链接 阅读 无线网络连接 在桌面应用程序 在 Windows 10 上 和平板电脑 Android 但无关紧要 之间 工作流程 按钮 gt 如果需要提升权限 gt 创建类似托管网络的 WiFi 网
  • 未定义的行为或误报

    我 基本上 在野外遇到过以下情况 x x 5 显然 它可以在早期版本的 gcc 下编译干净 在 gcc 4 5 1 下生成警告 据我所知 警告是由 Wsequence point 生成的 所以我的问题是 这是否违反了标准中关于在序列点之间操
  • 在一个字节中存储 4 个不同的值

    我有一个任务要做 但我不知道从哪里开始 我不期待也绝对不想要代码中的答案 我想要一些关于该怎么做的指导 因为我感到有点失落 将变量打包和解包到一个字节中 您需要在一个字节中存储 4 个不同的值 这些值为 NAME RANGE BITS en
  • 将 log4net 与 Autofac 结合使用

    我正在尝试将 log4net 与 Autofac 一起使用 我粘贴了这段代码http autofac readthedocs org en latest examples log4net html http autofac readthed
  • std::async 与重载函数

    可能的重复 std bind 重载解析 https stackoverflow com questions 4159487 stdbind overload resolution 考虑以下 C 示例 class A public int f
  • .NET中的LinkedList是循环链表吗?

    我需要一个循环链表 所以我想知道是否LinkedList是循环链表吗 每当您想要移动列表中的 下一个 块时 以循环方式使用它的快速解决方案 current current Next current List First 电流在哪里Linke
  • 有没有办法强制显示工具提示?

    我有一个验证字段的方法 如果无法验证 该字段将被清除并标记为红色 我还希望在框上方弹出一个工具提示 并向用户显示该值无效的消息 有没有办法做到这一点 并且可以控制工具提示显示的时间 我怎样才能让它自己弹出而不是鼠标悬停时弹出 If the
  • 编译时“strlen()”有效吗?

    有时需要将字符串的长度与常量进行比较 例如 if line length gt 2 Do something 但我试图避免在代码中使用 魔法 常量 通常我使用这样的代码 if line length gt strlen Do somethi
  • Linq-to-entities,在一个查询中获取结果+行数

    我已经看到了有关此事的多个问题 但它们已经有 2 年 或更长 的历史了 所以我想知道这方面是否有任何变化 基本思想是填充网格视图并创建自定义分页 所以 我还需要结果和行数 在 SQL 中 这将类似于 SELECT COUNT id Id N
  • 当另一个线程可能设置共享布尔标志(最多一次)时,是否可以读取共享布尔标志而不锁定它?

    我希望我的线程能够更优雅地关闭 因此我尝试实现一个简单的信号机制 我不认为我想要一个完全事件驱动的线程 所以我有一个工作人员有一种方法可以使用关键部分优雅地停止它Monitor 相当于C lock我相信 绘图线程 h class Drawi
  • 防止在工厂方法之外实例化对象

    假设我有一个带有工厂方法的类 class A public static A newA Some code logging return new A 是否可以使用 a 来阻止此类对象的实例化new 那么工厂方法是创建对象实例的唯一方法吗 当

随机推荐

  • 确定向量中每个唯一元素的出现次数

    如何确定 MATLAB 向量中某个值的相对频率 vector 2 2 2 2 1 1 1 2 2 1 1 1 2 2 2 2 1 2 什么函数将返回每个唯一元素出现的次数 您可以使用unique结合histc以获得相对频率 A 1 2 3
  • 为什么 pySerial 不写入我的程序内部?

    所以我在我的arduino nano上设置了一个程序 它从串行端口读取一个字节 并根据收到的字节是1还是0来打开LED 我在串行监视器和在 python 3 shell 中使用 pySerial 它工作得很好 但是当我有一个像这样的简单程序
  • Bootstrap Sass 与 Rails 4

    我正在尝试在我的rails 4 0 0 项目中使用bootstrap sass 3 1 0 2 和sass rails 4 0 1 我的 application css scss 文件如下所示 This is a manifest file
  • 管理多个开发人员的 sys.path

    我面临的问题虽小但很烦人 一位同事正在开发版本控制系统 X VCS X 中的一个项目 另一位同事正在另一个版本控制系统 Y 中工作 并使用来自 X 的软件包 不幸的是 VCS X 中的同事使用本地导入并使用修改他的路径sys path ap
  • 当列数小于列数时,Chrome 列会出现错误

    我在使用 Chrome 时遇到问题column count财产 我有一个 div 里面有一些项目 所以我设置column count 3 当我有 3 个或更多项目时 它效果很好 但是当我只有两个项目时 它们不会显示在同一行中 而是显示在同一
  • 在solvet()中使用erf()函数时,sympy和mpmath给出“TypeError:无法创建mpf”

    我有 4 个输入变量 浮点数 Xmax Xmin 百分比 mode 我想求解 s 的以下 相当长的 方程 gt 1 2 1 2 erf log Xmax log mode s 2 sqrt 2 s 1 2 1 2 erf log Xmin
  • Hashlib 和 System.Security.Cryptography.HashAlgorithm 之间的区别

    我试图了解哈希算法的工作原理 特别是 SHA3 512 为了看看它是如何工作的 我在谷歌中搜索了代码并发现了Hashlib 该代码不起作用 因为我没有 Hashlib 库 不确定它应该被称为什么 我怎样才能得到它 这是在 C 中应用 SHA
  • Facebook SDK 3.1 - com.facebook.sdk 使用 [facebook Authorize:permissions] 进行身份验证时出现错误 5

    使用以下授权方法进行身份验证时 我在 startWithGraphPath 和 startForMeWithCompletionHandler 中收到 com facebook sdk 错误 5 但在 requestWithGraphPat
  • Java 中的按位与 (&) 表达式

    我正在调试其中的代码expr1 expr2 where expr1有一个影响的副作用expr2评价结果 我怀疑expr2之前被评估过expr1 因为 JLS 保证从左到右评估 但不一定是为了 我还怀疑评估顺序的更改可能是 HotSpot 执
  • 获取cookie过期时间

    是否可以使用 php 读取 cookie 过期时间 当我print r COOKIE 它输出 Array PHPSESSID gt 0afef6bac83a7db8abd9f87b76838d7f userId gt 1232 userEm
  • Extjs 创建网格功能或网格插件,为网格中的每一列设置工具提示

    这个问题有添加工具提示的答案 Extjs4 在 gridPanel 中每列悬停时设置工具提示 我对这个问题最受好评的答案有一个后续问题 即修改渲染器函数以添加工具提示 如下所示 xtype gridcolumn dataIndex stat
  • 什么是窗口加载替代方案?

    我有以下情况 我想show我的图片at once仅当页面完全加载时 因为我想避免在 内一张一张地显示图像文档准备功能 它们最初是隐藏的 并希望向它们显示at once仅当文档加载完成时 所以我使用 window load function
  • 将 csrf 令牌从 Laravel 传递到 Vue

    Pass csrf令牌来自Laravel 到 Vue我有一个单独的 Vue 应用程序用于客户端 Laravel 应用程序用于后端 API 我使用 Cookie 因此需要 csrf 保护 如何将 csrf 令牌从服务器传递到客户端 每 XX
  • 为什么 Dataflow-BigTable 连接器不支持增量?

    我们在流模式下有一个用例 我们想要跟踪管道中 BigTable 上的计数器 items 已完成处理的东西 为此我们需要增量操作 从看https cloud google com bigtable docs dataflow hbase 我发
  • OnTriggerEnter2D 未被调用

    我正在尝试在 Unity 中制作小行星的复制品 问题是我的子弹没有触发OnTriggerEnter2D小行星上的方法 小行星附有以下脚本 using UnityEngine using System Collections public c
  • 有没有办法为 Windows 窗体中的特定按钮挂钩鼠标事件

    我想从特定窗口内的特定按钮挂钩 WM MOUSEDOWN 和 WM MOUSEUP 事件 我想 SetWindowsHookEx 会挂钩我想要的消息 FindWindowEx 将帮助我找到我想要捕获这些事件的窗口句柄 我只是不知道如何让它从
  • 如何在用户窗体上使用带有选项按钮控件的事件[重复]

    这个问题在这里已经有答案了 我正在尝试从 Excel 工作表中的范围添加选项按钮 For Each Value In OptionList Set opt UserForm3 Controls Add Forms OptionButton
  • AngularJs 中控制器之间的通信

    我有一个简单的问题 当两个控制器之间 比方说 进行交互时 最好的 最干净的 可扩展的 路径是什么 那会是定义一个服务并观察该服务的返回值以便做出反应吗 我设置了一个简单的例子here 我在其中查看服务的当前值 scope watch fun
  • Membership.GetUser().ProviderUserKey 始终返回 null

    我最近开始使用 ASP NET 表单身份验证和成员身份 我在 Visual Studio 中创建了一个 C 项目 它会自动创建 Account Login aspx 之类的页面 然后我按照一个安装示例aspnet 表到我的 SQL Serv
  • 在构造函数中读取ControllerBase.User

    我想要一个基本控制器 它应该为每个控制器操作设置身份验证变量 claimsIdentity User Identity as ClaimsIdentity userId claimsIdentity FindFirst ID Value 不