c# - asp.net azure 事件目录用户配置文件数据

标签 c# sql-server asp.net-mvc asp.net-identity azure-active-directory

我正在使用 Azure 的 AD 身份验证开发 MVC 应用程序。我一直在寻找“扩展”用户配置文件数据的最佳实践或建议方法。例如,我希望用户存储自己的出生日期。

我看过这个,但它并没有真正回答我的问题:Active Directory User Data Storage

我也找不到任何其他解决方案,所有其他解决方案都用于其他类型的身份验证。

需要注意的一件事是应用程序只有对 AD 的读取权限,如果这对我的要求很重要的话。我希望只创建一个使用 User.Identity.GetUserId() 的用户模型(这一切都会改变吗?如果会改变,我可以使用哪些不会?)。

提前致谢!

最佳答案

这里我有几个建议。

选项 1 - 您可以使用自己的应用程序配置文件存储,为目录中不存在的属性存储额外的用户配置文件信息。基本上,当您的应用程序为登录用户获取用户 token (或 JWT token )时,您将在 token 中获得 objectId (oid) 声明。这是用户的唯一 ID(在所有 Azure AD 中)。您可以将其用作您的用户配置文件商店中的 key ,并使用该 key 将 AAD 中的用户信息实质上链接到您的应用商店中的用户信息。

选项 2 - 使用目录架构扩展。 Azure AD(通过图形 API)允许您的应用程序声明其他属性以扩展客户的 Azure AD 架构。在这里,您可以使用新的 dateOfBirth 属性扩展 User 实体。您的( Multi-Tenancy 应用程序)的客户(管理员)需要同意允许您的应用程序写入他们的目录,如果同意,该目录将使用您的应用程序声明的扩展属性扩展他们的用户实体架构。然后您的应用程序(或实际上任何应用程序)可以读取和写入这个新的扩展属性。注意:目前对这些扩展属性没有特殊的访问控制 - 如果用户或应用程序有权读取用户实体(在这种情况下),他们将能够读取任何应用程序声明的任何扩展属性 - 包括你的。
有关目录扩展的更多信息,请参阅 https://msdn.microsoft.com/en-us/library/azure/dn720459.aspxhttp://blogs.msdn.com/b/aadgraphteam/archive/2014/03/06/extend-azure-active-directory-schema-using-graph-api-preview.aspx (不管这篇博文怎么说,模式扩展现在是 Graph API 1.5 版中的 GA)。 Graph Client Library 也支持目录架构扩展,您可以在 github 上的控制台示例中看到这一点:https://github.com/AzureADSamples/ConsoleApp-GraphAPI-DotNet .

HTHs,

关于c# - asp.net azure 事件目录用户配置文件数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28690758/

相关文章:

c# - 脱机时如何以编程方式查明本地文件是否受 TFS 版本控制

sql-server - 将 IF ...ELSE 语句添加到存储过程以跳过重复的主键

sql-server - 实现发票销售税策略

mysql - 如果我有一个带有 alowed 字母的多重集,应该使用什么样的数据库来存储单词列表然后快速搜索单词?

c# - .Net Core 5 应用程序是如何组织/结构化的?或者如何将 n 层类库项目添加到 .Net 核心 Asp.Net 解决方案?

c# - 为什么我必须渲染我的 Bundle 两次?

javascript - (jQuery) 如何避免在另一个点击事件下注册多个点击事件?

c# - 使用带有 WCF SOAP 的 XmlSerializer 添加根 xmlns

c# - 输出参数和异常

c# - 如何尽快播放声音?