В вашем файле 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"/>
В элементе system.webServer
<modules>
<remove name="FormsAuthentication" />
<add name="WSFederationAuthenticationModule" type="System.IdentityModel.Services.WSFederationAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" />
<add name="SessionAuthenticationModule" type="System.IdentityModel.Services.SessionAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" />
</modules>
Ваша аудитория Urisпустой.Вы должны указать свое веб-приложение, чтобы оно могло использовать эту функцию.Итак, добавьте эту строку:
<audienceUris>
<add value="http://localhost/dss.web.frontend"/>
</audienceUris>
Если после этих изменений ваши проблемы были устранены, вы можете реализовать свой пользовательский модуль аутентификации, полученный из WSFederationAuthenticationModule.Примерно так:
public class CustomAuthenticationModule : WSFederationAuthenticationModule
{
public CustomAuthenticationModule()
{
base.SecurityTokenReceived += CustomAuthenticationModule_SecurityTokenReceived;
}
public void CustomAuthenticationModule_SecurityTokenReceived(object sender, SecurityTokenReceivedEventArgs e)
{
}
protected override void OnAuthenticateRequest(object sender, EventArgs args)
{
base.OnAuthenticateRequest(sender, args);
}
}
, а затем просто в изменении конфигурации вместо WSFederationAuthenticationModule поместите CustomAuthenticationModule с соответствующим пространством имен и подписью сборки.Таким образом, вы можете перехватывать вызовы в вашем делегате.
Надеюсь, что это полезно для вас.
Растко