c# - 在 .Net 标准项目中使用 Microsoft.AspNetCore.Identity?

标签 c# asp.net-core asp.net-identity .net-standard

我即将将遗留代码(.Net 框架)迁移到 .Net Standard(2.0,不是 2.1,以便它仍然与 Framework 4.7 和 Core 3.0 兼容)。旧图书馆正在使用 System.Web.Security访问数据库(用户和成员(member)等)。我已经使用 IdentityServer4 将其更改为新的 Identity 模型。

我对此问题的问题:
我可以用Microsoft.AspNetCore.Identity.Net Standard项目?

我读了一些关于 Git 的讨论,但很困惑。显然 .Net standard 有区别2.0 和 2.1,但 NUGET 允许我为 .Net Standard 2.0 安装“Microsoft.AspNetCore.Identity” .

我想知道这一点,因为这会让迁移更容易一些,只需在 Microsoft.AspNetCore.Identity 中用新类替换旧类即可。 .否则,我需要删除 .Net 标准库中与身份相关的所有内容。

不幸的是我不能使用 .Net Core 3.0对于库,因为需要在 WebForms 应用程序(.Net Framework 4.7)中使用 Libs。

编辑 1:感谢您的答复。那已经帮助了我。
但我有一个后续问题:

让我感到困惑的是,我将在 WebForms 应用程序中使用这些 Lib,并且我阅读了一些关于不支持 aspnet 核心的新身份模型的旧框架的内容。例如:我可以在 WebForms 应用程序的代码隐藏中的自定义 .Net 标准库中使用“ApplicationUser”-Class(如果我将所有用户管理包装在单独的 .Net 标准 Dll 中)?

编辑 2:以下是让我恼火的讨论:https://github.com/dotnet/aspnetcore/issues/3756#issuecomment-434114175关于 .Net Standard 中的“Microsoft.AspNetCore.Identity”支持(甚至命名空间“Microsoft. AspNetCore .Identity”让我认为它不应该在 .Net Standard 上工作)

编辑 3:
因此,我尝试使用 Microsoft.AspNetCore.Identity 在 .Net 标准库中使用“IdentityUser”。原来 EntityFramework 也需要添加到引用中,我收到了这个错误。

包“EntityFramework 6.1.0”已使用“.NETFramework,Version=v4.6.1, .NETFramework,Version=v4.6.2, .NETFramework,Version=v4.7, .NETFramework,Version=v4.7.1, .NETFramework”恢复, Version=v4.7.2, .NETFramework,Version=v4.8' 而不是项目目标框架 '.NETStandard,Version=v2.0'。此包可能与您的项目不完全兼容。

如何解决此问题:对于 .Net Standard 2.0,请安装此 Microsoft.Extensions.Identity.Stores。
对于 .Net Standard 2.1,可以安装 Microsoft.AspNetCore.Identity.EntityFrameworkCore

最佳答案

.NET 标准是所有 .NET 实现都应遵守的规范。这是为了标准化 .NET 实现而引入的。

所以,如果你 refer the documentation ,您将能够知道 .NET standard 2.0 支持哪些 .NET 实现。以及 .NET Standard 2.1 支持哪些 .NET 实现.

现在,您的问题:你能用吗Microsoft.AspNetCore.Identity包裹在 .NET Standard 2.0项目。

只要您将构建代码所针对的 .NET 实现向 .NET Standard 2.0 确认,您就可以使用它。

根据 this link , Microsoft.AspNetCore.Identity v2.2.0面向 .NET Standard 2.0,因此您可以在您的项目中使用它。

请注意 .NET Framework不支持 .NET Standard 2.1或更高版本。更多详情请见the announcement of .NET Standard 2.1.

关于c# - 在 .Net 标准项目中使用 Microsoft.AspNetCore.Identity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59898769/

相关文章:

c# - 自定义条件编译符号

javascript - 如何从 Controller 传递对象列表以查看和填充 google.visualization.DataTable()?

ASP.NET 4.6、身份框架和 SQL Azure

c# 十六进制字符串到字节图像和过滤

c# - 单击事件未触发 - 无法更改焦点 - 无法关闭表单

c# - lambda 表达式中的枚举的编译方式不同;重载分辨率改进的结果?

asp.net-mvc - 在 Debug模式下运行时,ASP.Net Core 不会抛出异常

forms - 使用参数提交表单到操作,Asp.Net.Core Mvc

c# - 使用 MVC 5 和 Asp.net Identity 的电子邮件确认

c# - 需要将 Asp.Net Identity (RTM) User Id 从 nvarchar(128) 更改为 uniqueidentifier