gpt4 book ai didi

azure - 我可以/应该将 Asp.Net Identity 与组织帐户一起使用吗?

转载 作者:行者123 更新时间:2023-12-04 04:41:33 25 4
gpt4 key购买 nike

我希望我的用户使用他们的组织帐户(AD、AAD、O365)登录我的 Web 应用程序,并使用 Asp.Net Identity 在我的应用程序中本地存储特定于应用程序的配置文件或角色信息,这些信息我不知道不想弄脏我或我的租户的目录。

我不确定这个场景是否现实,因为我发现有关它的信息很少。在 MVC 4 中这是可行的。我将创建一个空的 MVC4 Web 应用程序,使用身份和访问工具设置联合身份验证,并将名称声明存储在我使用 SimpleMembership 设置的用户表中(例如 this 。)

然而,对于新的开发来说,似乎更倾向于使用 Asp.Net Identity 而不是 SimpleMembership。但那里看起来要困难得多。查看 Visual Studio 2013 RTM 中的 ASP.NET Web 模板,我必须将个人帐户模板中的部分与组织帐户模板中的部分结合起来。我已经看到 Asp.Net 身份将外部登录信息存储在 AspNetUserLogins 表中,开箱即用(我可以先使用 EF6 代码更改),但我无法弄清楚我要存储的 ClaimsIdentity 中的哪些信息最好(tenantId 和名称声明?)或在代码中的什么位置。组织帐户模板引用了 Microsoft.Aspnet.Identity,但似乎从未调用过它。

我的方案可行吗?是否有可以在 VS2013 最终版本上构建的示例?使用自己的实现来存储角色和配置文件信息而不是 Asp.Net Identity 会更好吗?

最佳答案

这是一个有效的场景,我已经实现了与此类似的东西。假设您想要将 WAAD 用户的“元数据”存储在本地存储库中。我所说的元数据是指基本的标识信息,您可以使用这些信息将本地存储库中的用户与 WAAD 中的同一用户条目关联起来。这是我要存储的内容:

IdentityProvider(在本例中为 WAAD)
TenantId(此字段的格式可能因身份提供商而异,但字符串就足够了)
UserId(同样,该字段的格式可能因 idP 不同而有所不同,但字符串可以使用...名称声明,在本例中 - 只要它在租户内的用户之间是唯一的)

您应该能够从 ClaimsPrincipal/ClaimsIdentity 中获取此信息。我在 VS 2013 出现之前实现了我的应用程序,因此我推出了自己的应用程序,但在阅读了新的“一个”ASP.NET 身份文档后,它看起来相当可扩展,因此采用它可能是一个好主意。它甚至允许您插入不同的存储提供程序(不仅仅是关系数据库)。

关于azure - 我可以/应该将 Asp.Net Identity 与组织帐户一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19534356/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com