C# WIF:SessionAuthenticationModule始终为空

C# WIF:SessionAuthenticationModule始终为空,c#,asp.net-mvc,wif,C#,Asp.net Mvc,Wif,我正试图让WIF建立一个MVC项目,但没有任何效果。我遇到的问题是,FederatedAuthentication.SessionAuthenticationModule始终为空。我已将以下行添加到web.config的configSections下: <section name="system.identityModel" type="System.IdentityModel.Configuration.SystemIdentityModelSection, System.Ide

我正试图让WIF建立一个MVC项目,但没有任何效果。我遇到的问题是,
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获得的WIF名称空间是
Microsoft.IdentityModel
。这会引起麻烦吗

一些规格:

标准MVC4项目


使用
Microsoft.IdentityModel.dll
v3.5.0.0

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


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

您不需要使用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>