ASP.NET混合项目集成ITFoxTec SAML遇ServiceName未找到错误求助
解决ITFoxTec SAML中ServiceName找不到的问题
问题原因
你遇到的ServiceName类型找不到的问题,核心是ITFoxtec SAML包版本与代码示例不匹配——你的项目基于.NET Core 2.0,只能兼容早期版本的ITFoxtec包,而当前代码是新版本包的写法,旧版本中没有ServiceName类,而是用LocalizedName代替,且属性名也不同。
解决步骤
1. 调整代码适配旧版本包
将代码中AttributeConsumingService的初始化部分修改为旧版本的写法,用LocalizedName创建服务名称并赋值给ServiceNames集合属性:
AttributeConsumingServices = new AttributeConsumingService[] { new AttributeConsumingService { ServiceNames = new List<LocalizedName> { new LocalizedName("LegacyEnrollmentArea", "en") }, RequestedAttributes = CreateRequestedAttributes() } },
2. 安装兼容.NET Core 2.0的包版本
.NET Core 2.0最高兼容ITFoxtec.Identity.Saml2的v2.9.0版本,通过NuGet包管理器安装对应版本:
Install-Package ITfoxtec.Identity.Saml2 -Version 2.9.0 Install-Package ITfoxtec.Identity.Saml2.MvcCore -Version 2.9.0
3. 确认项目引用正确性
确保.NET Core项目(而非仅ASP.NET 4.8项目)中已正确引用上述两个包,避免跨项目引用缺失导致的类型找不到问题。
内容的提问来源于stack exchange,提问作者SkyeBoniwell
相关产品推荐
相关产品推荐

