Microsoft.AspNetCore.Identity弃用后应用层使用SignInManager遇阻求助
解决应用层使用SignInManager的依赖问题
问题原因
SignInManager<TUser> 并不包含在 Microsoft.AspNetCore.Identity.EntityFrameworkCore 或其依赖的 Microsoft.Extensions.Identity.Core 包中,它属于 Microsoft.AspNetCore.Identity 包。你的API层能直接使用该类型,是因为ASP.NET Core项目默认引用了 Microsoft.AspNetCore.App 元包,该元包包含了 Microsoft.AspNetCore.Identity;而你的应用层是类库项目(使用 Microsoft.NET.Sdk),不会自动引入这个元包,因此必须显式添加依赖。
解决方案
1. 显式安装对应版本的Microsoft.AspNetCore.Identity包
在应用层项目中安装与现有Identity组件版本一致的 Microsoft.AspNetCore.Identity 包(你的项目基于net6.0,选择6.0.28版本):
- 通过NuGet包管理器搜索并安装
Microsoft.AspNetCore.Identity,版本选择6.0.28。 - 或者直接在项目的.csproj文件中添加以下包引用:
<ItemGroup> <PackageReference Include="Microsoft.AspNetCore.Identity" Version="6.0.28" /> </ItemGroup>
2. 保持依赖版本一致性
确保所有Identity相关包的版本统一为6.0.28,避免因版本差异引发兼容性问题。
3. 关于弃用提示的说明
虽然 Microsoft.AspNetCore.Identity 被标记为弃用,但这是针对.NET 7及以上版本的架构调整。在.NET 6生态中,该包仍是官方支持的稳定组件,使用对应版本不会影响功能运行和稳定性。若后续升级到更高版本的.NET,再按照官方文档迁移到拆分后的新包结构即可。
内容的提问来源于stack exchange,提问作者user24112451
相关产品推荐
相关产品推荐

