我正在尝试在我正在开发的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
答案 0 :(得分:0)
System.identitymodel.xxx是.Net 4.5版本,如果WIF将所有内容合并到核心框架中。
Microsoft.identitymodel.xxx是单独安装的.net 4版本。
答案 1 :(得分: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>