我不知道爲什麼,但我FederatedAuthentication.SessionAuthenticationModule被解析爲NULL,並撞毀我的應用程序,當我嘗試運行我的ClaimsTransformer()模塊:什麼使FederatedAuthentication.SessionAuthenticationModule返回NULL?
public void EstablishSession(ClaimsPrincipal principal)
{
var sessionToken = new SessionSecurityToken(principal, TimeSpan.FromHours(8))
{
IsPersistent = false, // make persistent
IsReferenceMode = true // cache on server
};
FederatedAuthentication.SessionAuthenticationModule.WriteSessionTokenToCookie(sessionToken);
// FederatedAuthentication.SessionAuthenticationModule == null and I throw an error :(
}
這裏是什麼在我的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.web>
<authentication mode="None" />
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<remove name="RoleManager" />
<remove name="FormsAuthentication" />
<remove name="SessionAuthenticationModule" />
<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>
<identityConfiguration>
<claimsAuthenticationManager type="Web.Infrastructure.Authentication.ClaimsTransformer, Web" />
</identityConfiguration>
</system.identityModel>
<system.identityModel.services>
<federationConfiguration>
<cookieHandler requireSsl="false" />
</federationConfiguration>
</system.identityModel.services>
這讓我瘋狂,因爲我的代碼在(概念驗證)項目中運行時沒有任何問題,並且看起來就是我需要的所有功能,但出於某種奇怪的原因,當我嘗試實施在我們的真實項目中,我的FederatedAuthentication.SessionAuthenticationModule始終爲NULL。
我在這裏錯過了什麼?有任何想法嗎?爲什麼SessionAuthenticationModule無法正確初始化?
爲什麼你添加三個加SessionAuthenticationModule之前 '刪除' 的節點? –
如果該設置被添加到.config鏈中的其他位置。刪除然後添加我以前見過,因爲我的代碼不工作,我正在嘗試一切... – user1265146