0

我正在尝试在我正在处理的 MVC 项目上设置 WIF,但无济于事。我遇到的问题FederatedAuthentication.SessionAuthenticationModule是始终为空。我在 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" />

我还尝试初始化模块:

<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.dllv3.5.0.0

4

2 回答 2

1

您不需要使用 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>
于 2015-04-28T05:48:28.630 回答
0

System.identitymodel.xxx 是 .Net 4.5 版本,如果 WIF 将所有内容都合并到核心框架中。

Microsoft.identitymodel.xxx 是单独安装的 .net 4 版本。

于 2013-09-29T09:46:57.440 回答