Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# asp.net azure active directory用户配置文件数据_C#_Sql Server_Asp.net Mvc_Asp.net Identity_Azure Active Directory - Fatal编程技术网

C# asp.net azure active directory用户配置文件数据

C# asp.net azure active directory用户配置文件数据,c#,sql-server,asp.net-mvc,asp.net-identity,azure-active-directory,C#,Sql Server,Asp.net Mvc,Asp.net Identity,Azure Active Directory,我正在使用Azure的广告认证开发一个MVC应用程序。我一直在寻找“扩展”用户配置文件数据的最佳实践或建议方法。例如,我希望用户对自己存储出生日期 我已经看过了,但它并没有真正回答我的问题: 我也找不到其他类似的解决方案,所有其他解决方案都是针对其他类型的身份验证的 需要注意的一点是,应用程序只有对广告的读取权限,如果这与我的要求有关的话。我希望只创建一个使用User.Identity.GetUserId()的用户模型(这会改变吗?如果会,我能用什么不改变呢?) 提前谢谢 这里我有几个建议 选项

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

我已经看过了,但它并没有真正回答我的问题:

我也找不到其他类似的解决方案,所有其他解决方案都是针对其他类型的身份验证的

需要注意的一点是,应用程序只有对广告的读取权限,如果这与我的要求有关的话。我希望只创建一个使用User.Identity.GetUserId()的用户模型(这会改变吗?如果会,我能用什么不改变呢?)


提前谢谢

这里我有几个建议

选项1-您可以使用自己的应用程序配置文件存储,用于存储目录中不存在的属性的其他用户配置文件信息。基本上,当您的应用程序为登录用户获取用户令牌(或JWT令牌)时,您将在令牌中获得objectId(oid)声明。这是用户的唯一id(在所有Azure AD中)。您可以将其用作用户配置文件存储中的密钥,并使用此密钥将AAD中的用户信息链接到应用程序存储中的用户信息

选项2-使用目录架构扩展。Azure AD(通过图形API)允许您的应用程序声明其他属性以扩展客户的Azure AD架构。在这里,您可以使用新的dateOfBirth属性扩展用户实体。您(多租户应用程序)的客户(管理员)需要同意才能允许您的应用程序写入其目录,在同意后,该目录将使用应用程序声明的扩展属性扩展其用户实体架构。然后,您的应用程序(或者实际上任何应用程序)都可以读取和写入此新扩展属性。注意:目前这些扩展属性没有特殊的访问控制-如果用户或应用程序有权读取用户实体(在本例中),他们将能够读取任何应用程序(包括您的应用程序)声明的任何扩展属性。
有关目录扩展的更多信息,请参阅和(尽管这篇博文说,模式扩展现在在GraphAPI的1.5版中是GA)。图形客户端库也支持目录架构扩展,您可以在github上的控制台示例中看到这一点

嗯,