WIF:会话身份验证模块始终为空
本文关键字:模块 会话 身份验证 WIF | 更新日期: 2023-09-27 18:33:16
我正在尝试在我正在处理的 MVC 项目上设置 WIF,但无济于事。 我遇到的问题是FederatedAuthentication.SessionAuthenticationModule
总是空的。 我在 configSections
下将以下行添加到 web.config 中:
<section name="system.identityModel"
type="System.IdentityModel.Configuration.SystemIdentityModelSection, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
<section name="system.identityModel.services"
type="System.IdentityModel.Services.Configuration.SystemIdentityModelServicesSection, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
我还尝试初始化模块:
<modules>
<add name="SessionAuthenticationModule"
type="System.IdentityModel.Services.SessionAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
preCondition="managedHandler" />
</modules>
还是没有。 我通过 nuget 安装了 WIF。 我注意到大多数在线文档的 WIF 命名空间(如我上面发布的内容)是System.IdentityModel
而我通过 nuget 拥有的命名空间是Microsoft.IdentityModel
。 这会造成麻烦吗?
一些规格:
标准 MVC 4 项目
使用 Microsoft.IdentityModel.dll
v3.5.0.0
无需
使用 nuget 安装 WIF 4。 .Net Framework 4.5 内置了对此库的支持。你的 web.config 必须是这样的:
<configSections>
<section name="system.identityModel" type="System.IdentityModel.Configuration.SystemIdentityModelSection, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<section name="system.identityModel.services" type="System.IdentityModel.Services.Configuration.SystemIdentityModelServicesSection, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</configSections>
和:
<system.webServer>
<modules>
<add name="WSFederationAuthenticationModule" type="System.IdentityModel.Services.WSFederationAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add name="SessionAuthenticationModule" type="System.IdentityModel.Services.SessionAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
</modules>
</system.webServer>
System.identitymodel.xxx 是 .Net 4.5 版本,如果 WIF 将所有内容合并到核心框架中。
Microsoft.identitymodel.xxx 是单独安装的 .NET 4 版本。