2013-09-29 122 views
0

我試圖讓WIF設置在我正在處理的MVC項目上,但無濟於事。我遇到的問題是FederatedAuthentication.SessionAuthenticationModule始終爲空。我加入以下行的web.config configSections下:WIF:SessionAuthenticationModule總是爲空

<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

回答

0

System.identitymodel.xxx是.NET 4.5的版本,如果WIF這裏的一切將被合併到核心框架。

Microsoft.identitymodel.xxx是單獨安裝的.net 4版本。

0

您不需要使用nuget安裝WIF 4。 .Net框架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>