【问题标题】:Which property of ClaimsPrincipal can be used to uniquely identify user in a MVC ControllerClaimsPrincipal 的哪个属性可用于唯一标识 MVC 控制器中的用户
【发布时间】:2019-01-29 16:42:21
【问题描述】:

我有一个在 Azure 上作为服务发布的 webapi。它使用集成的 AD 安全性。

在我的控制器中,我可以通过 User 属性访问 ClaimsPrincipal。 ClaimsPrincipal 的哪些属性可用于唯一标识用户,以便我可以使用该值在 SQL 表中搜索该用户数据或将数据存储到 SQL 表并包含用户唯一标识?身份属性有一个名称,但我正在考虑一个更唯一的标识符。

或者是否有不同的预期策略来做到这一点?

【问题讨论】:

  • ClaimTypes.NameIdentifier 有什么问题?这应该是实际的用户 id,例如来自数据库中的 PK。

标签: azure active-directory asp.net-core-webapi


【解决方案1】:

AFAIK,您可以使用 upnoid(对象标识符)声明。

UPN 通常是您的登录名 e。 G。 yourname@yourtenant.onmicrosoft.com 而 oid 是该用户的 ObjectId。

注意:如果您删除并重新创建具有相同电子邮件的用户,则 upn 将相同,而 oid 将更改。

【讨论】:

  • 我一直在研究不同的 ClaimTypes。我猜在给定的广告中,UPN 和 NameIdentifier 应该是唯一的。可能两者都可以使用。我想我需要一个标识符表(AD、Google...)以及一个基于应用程序的 PK。我可以通过身份验证服务 UPN(或任何名称)找到 PK。我不想在我的数据中存储多个标识符。只是一个映射到其他标识符的 PK
猜你喜欢
  • 2012-10-06
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多