我正在尝试使用后端的DocumentDb向用户提供授权 - 但我无法找到有关相同的任何资源。提供的文档适用于基于SQL的文档(https://docs.asp.net/en/latest/security/authentication/identity.html)。
任何帮助?
答案 0 :(得分:18)
为了给您提供一个起点,在查看使用 ASP.Net Core 的身份时,需要记住几个重要问题:
框架兼容性
你提到你将使用 ASP.Net Core ,这可以与.Net Core或者#full;'一起使用。 .Net Framework(例如.Net Framework 4.5.1),可以在project.json
属性下的frameworks
中指定。
Microsoft DocumentDB本机.Net客户端不支持.Net Core;因此,您必须配置ASP.Net Core以定位“完整”## .Net框架。如果您不确定如何执行此操作,可以在Visual Studio 2015中创建一个新项目,并选择“ASP.Net Core(.Net Framework)'项目模板; project.json
将为您正确配置其framework
属性。
<强>&#39;标识&#39;版本强>
ASP.Net Identity有几个版本;选择提供商时要注意,目前最常引用ASP.Net Identity 2.2.1 ;然而,最新版本 3 ,与 ASP.Net Core 一起发布,由NuGet包Microsoft.AspNetCore.Identity 1.0.0支持,具有一些差异和附加功能。 (请注意,您可以将后一个包与完整的.Net Framework一起使用。)
无正式实施
微软决定不为ASP.Net Identity创建官方的DocumentDB实施,理由是“有两个社区项目可供使用”。 (参考here)
第三方支持
在可用的第三方实现中,Adrian Fernandez的this one是使用Microsoft本机DocumentDB客户端为ASP.Net Identity 3 提供支持的最广泛使用。样本包含在GitHub存储库中。 ( 请参阅下面的更新。 )
使用示例
可以找到将此DocumentDB提供程序与ASP.Net一起使用的示例,包括其他功能,here。
可以找到使用ASP.Net Core和Microsoft DocumentDB提供程序的另一个示例here。
我为DocumentDB编写了自己的Identity 3提供程序;如果我在GitHub上发布这个,我会用链接更新这个答案。
更新2017年4月19日
对于那些寻求解决方案的人,我现在推荐 Bernhard Koenig 的AspNetCore.Identity.DocumentDb项目。它功能齐全,包括单元测试和示例ASP.Net核心项目。也可以通过Nuget获得。它支持netstandard1.6
个net46
个人资料。
答案 1 :(得分:1)
我的理解是微软可以将Mongo驱动程序与DocumentDb一起使用,所以也许你可以使用这个Mongo implementation for asp.net core identity
或谷歌进一步了解其他人可能在这方面做过的现有工作。
要自己实施,您需要至少实施IUserStore和IRoleStore,您还可以参考EF实施UserStore和RoleStore获取有关实施的灵感和指导那些。
答案 2 :(得分:0)
最好的解决方案是使用DocumentDB提供程序来构建.NET Core Identity框架。但到目前为止,我没有创建AspNetCore.Identity.DocumentDB并决定在MIT许可下将其发布到GitHub上。
它是.NET Core Identity的现有mongodb提供程序的端口,并存储Claim,Tokens&amp;登录为嵌套对象。虽然可以将DocumentDB与mongodb接口一起使用,但如果可能的话,建议使用本机SDK。
该库已经非常稳定,可以作为NuGet包使用。
<强>注意:强> DocumentDB SDK for C#本身不支持.NET Core作为稳定版本中的目标平台。 幸运的是 Microsoft已经在努力添加.NET Core支持并发布了DocumentDB SDK的预览版,其中包含:Connect()的.NET Standard支持; 2016年活动。 AspNetCore.Identity.DocumentDB支持两种SDK。
.NET Standard是API的规范,应该可以在所有.NET运行时上使用,并且目前受.NET Core和.NET Framework支持。