.NET 9中含AuthenticationProperties的ExternalLoginInfo如何实例化?
解决ExternalLoginInfo无AuthenticationProperties属性的问题
问题根源
你遇到的CS1061错误,是因为当前代码引用的ExternalLoginInfo是不包含AuthenticationProperties属性的派生类,而带该属性的同名类来自Microsoft.AspNetCore.Identity包的.NET 9对应版本实现。
解决方案
1. 确认NuGet包版本
确保安装的Microsoft.AspNetCore.Identity包版本与.NET 9 SDK匹配(即9.x.x版本)。可在项目文件(.csproj)中检查:
<PackageReference Include="Microsoft.AspNetCore.Identity" Version="9.0.*" />
2. 明确指定命名空间
在代码中使用完全限定名引用正确的ExternalLoginInfo,避免与其他程序集中的同名类冲突:
using Microsoft.AspNetCore.Identity; // 使用带AuthenticationProperties参数的构造函数实例化 var authProps = new AuthenticationProperties(); var externalLoginInfo = new ExternalLoginInfo( new ClaimsPrincipal(), "LoginProviderName", // 例如"Google"、"GitHub" "UserUniqueProviderKey", "UserDisplayName", authProps );
3. 排查冲突依赖
如果项目同时引用了其他包含ExternalLoginInfo的程序集(如旧版Identity相关包),可做以下调整:
- 移除不必要的旧版依赖包
- 在项目文件中通过调整引用顺序,优先加载.NET 9版本的
Microsoft.AspNetCore.Identity程序集
4. 验证当前引用的类型
通过以下代码确认当前代码使用的ExternalLoginInfo所属程序集:
Console.WriteLine(typeof(ExternalLoginInfo).Assembly.FullName);
若输出版本不是9.x,说明引用了旧版程序集,需调整NuGet包或项目依赖。
内容的提问来源于stack exchange,提问作者camcam
相关产品推荐
相关产品推荐

