Asp.Net 5 (Mvc 6) 中的自定义 ClaimsPrincipal

2024-02-16

我怎样才能覆盖默认值Context.User类型的System.Security.Claims.ClaimsPrincipal在 Asp.Net 5 (MVC-6) 中?

我想使用我的自定义用户类型,以便可以在控制器中访问它(HttpContext.User),以及 Razor 视图中 (@User.)

任何帮助深表感谢。谢谢!:)


基本的答案是不要——尝试实现自己的安全代码通常是一个坏主意;有很多选择可以为您节省大量前期时间,也可以为您省去很多后期麻烦。

另一个答案是你不能——它内置于新框架中从一开始就。 https://github.com/aspnet/HttpAbstractions/blob/4347ddfd0f7b97675ee0e4e489d69e42c6e29081/src/Microsoft.AspNet.Abstractions/HttpContext.cs

这就是 User POCO 模型的用途。身份框架就是以这种方式运行的(我认为从一开始),它反映了 OAuth 和大多数其他身份验证/授权系统。这是一个非常灵活和高效的模型。

相反,我建议做的是构建自己的ClaimTypes并使用除那些内置于框架中的。 https://msdn.microsoft.com/en-us/library/system.identitymodel.claims.claimtypes%28v=vs.110%29.aspx根据您对用户进行身份验证的方式,您应该能够在创建时添加它们IPrincipal, 反正。

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

Asp.Net 5 (Mvc 6) 中的自定义 ClaimsPrincipal 的相关文章

随机推荐

  • 检测两年以上的浏览器

    这是一个拥有大约 10 000 个用户的私人公司网站 我已经看到了一些浏览器检测的努力 但与浏览器的年龄无关 有人对此有想法吗 相关项目 http fresh browsers com en http fresh browsers com
  • RESTEasy Mock 与异常映射器与上下文

    RESTEasy 模拟框架工作正常 没有异常映射器 接收请求并返回带有预期内容的实体 注册异常映射器并强制异常后 当 RESTEasy 内部调用 ResteasyProviderFactory getContextData type 时 调
  • 如果 div 包含

    标签,jQuery 返回 true 或 false

    让我们来看看 div p this div contains a p tag p div div this one is not div 如果 div 包含特定标签 如上例中的 p 如何为变量分配布尔值 true 或 false div h
  • Spark-单调递增 id 在数据帧中无法按预期工作?

    我有一个数据框df在 Spark 中 它看起来像这样 scala gt df show columna1 columna2 0 1 0 4 0 2 0 5 0 1 0 3 0 3 0 6 0 2 0 7 0 2 0 8 0 1 0 7 0
  • 模拟器:错误:x86 模拟当前需要硬件加速

    我尝试在 Android Studio 中运行我的 Hello World 应用程序 我收到以下错误 模拟器 错误 x86 模拟当前需要硬件 加速 请确保英特尔 HAXM 已正确安装且可用 CPU加速状态 HAX内核模块未安装 你能告诉我如
  • 如何映射网址?

    我想映射这样的页面domain content myProject home html to domain home html content myProject 不需要 我有以下代码 String newpath getResourceR
  • 如何在 Google Optimize 中的 Document Ready 上运行 Javascript?

    如何在 Google 优化广告系列中的窗口加载或文档就绪时运行 javascript 它似乎允许我选择 DOM 元素一直到 Body 但我需要在文档准备好时运行 js 这就是我的做法 在可视化编辑器中编辑您的实验变体 单击选择元素图标 左上
  • Flutter (Dart) 如何在应用程序中点击时将副本添加到剪贴板?

    我是 Flutter 的初学者 我刚刚开始遵循他们的名称生成器应用程序教程并制作了一个简单的名称生成应用程序 我想知道当用户点击名称时是否可以添加复制到剪贴板功能 我尝试实现在堆栈上找到的解决方案 但它不起作用 我的完整代码在这里 任何建议
  • 检查Python中的字符串是否包含日期或时间戳[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我需要想出一个函数 它将接受一个字符串 它将执行以下操作 检查它是否是 UTC 格式的时间戳 例如 如果它的形式为2014 05 10T1
  • 为什么 scanf() 在某些情况下需要 & 运算符(地址),而在其他情况下不需要? [复制]

    这个问题在这里已经有答案了 为什么我们需要放一个 运算符在scanf 用于将值存储在整数数组中 但不能将字符串存储在字符数组中 int a 5 for i 0 i lt 5 i scanf d a i but char s 5 scanf
  • Keras LSTM:检查模型输入维度时出错

    我是 keras 的新用户 正在尝试实现 LSTM 模型 为了测试 我声明了如下所示的模型 但由于输入维度的差异而失败 虽然我在这个网站上发现了类似的问题 但我自己无法发现我的错误 ValueError Error when checkin
  • 在图像上写文字 查看图像

    目前 我正在开发一个应用程序 其中我有一个图像视图 图像不断 一段时间后发生变化 现在我希望我能够写一些文字或绘制任何符号 简单线 十字线意味着在图像上绘图出现在图像视图中 意思是我想要 在图像上添加文本或绘制一些符号或线条等 我到处寻找但
  • 如何删除所有 git origin 和 local 标签?

    如何删除已经推送的 git 标签 删除所有 git 远程 原始 标签并删除所有 git 本地标签 删除所有本地标签 可选推荐 git tag d git tag l 获取远程所有标签 可选推荐 git fetch 删除所有远程标签 Note
  • Angular 2 指令现在“可扩展”吗?

    我对 Angular 1 遇到的最大问题是扩展指令 在面向对象的意义上 是多么困难 例如 几乎不可能重复使用input number 我的自定义小部件上的指令 我必须重新实现所有验证和类型转换代码 Angular 2 组件是作为类实现的 因
  • Android WebView HTML5 Video Spawns MediaPlayer 永远存在于三星 S4 上 [找到了被黑的答案]

    据我所知 这似乎是最近的三星设备特有的 S4将做到这一点 Nexus 7 不会 如果带有 WebChromeClient 的 WebView 开始播放 HTML5 视频 它会创建一个 MediaPlayer 实例 一旦视频结束 似乎没有办法
  • 作曲家从私人仓库创建项目

    我有一个托管在 Bit Bucket 上的私人项目 我有一个 SSH 密钥设置 有什么办法我可以使用php composer create project vendor name path命令的方式与 Packagist 上的命令相同吗 好
  • std::atomic 是否正常工作?

    我正在阅读 Anthony Williams 的 C Concurrency in Action 第 5 章 其中讨论了新的多线程感知内存模型和原子操作 他指出 为了使用std atomic
  • 交替运行两个线程的最佳方法?

    更新 请参阅此问题的底部以获得完整的答案 我想运行一个辅助线程 以便我的主线程和辅助线程交替执行操作 不 我不想在主线程中执行所有操作 这是为了单元测试 我提出了两种不同的解决方案 我不知道哪个是最好的 并且我对第一个解决方案有疑问 使用交
  • 在 Swing 中显示 HTML

    我正在开发一个从服务器加载 HTML 文件并在 swing 中显示它们的项目 import java io import java net import java util regex import javax swing public c
  • Asp.Net 5 (Mvc 6) 中的自定义 ClaimsPrincipal

    我怎样才能覆盖默认值Context User类型的System Security Claims ClaimsPrincipal在 Asp Net 5 MVC 6 中 我想使用我的自定义用户类型 以便可以在控制器中访问它 HttpContex