Я использую ITFoxte c .Identity.Saml2. Mvc (v4.5.0) в MVC. NET (платформа 4.7.2). И мой IdP сообщает об успешной аутентификации ... перенаправление назад ... Но когда я получаю свой ответ от IdP - я получаю нулевое исключение, скрытое в этом вызове. К сожалению, он не дает мне номер строки или что-нибудь полезное, чтобы отследить его.
saml2AuthnResponse.CreateSession()
Я попробовал несколько способов создания пакета nuget, чтобы заставить его выйти из системы там, где он выходит из строя - но так далеко не повезло с этим при использовании / обращении извне пакета. Я установил другие параметры в файле web.config следующим образом:
<add key="Saml2:CertificateValidationMode" value="PeerOrChainTrust" />
<add key="Saml2:RevocationMode" value="NoCheck" />
Мой AssertionConsumerService практически идентичен примеру с вашего сайта:
public ActionResult AssertionConsumerService()
{
var binding = new Saml2PostBinding();
var saml2AuthnResponse = new Saml2AuthnResponse(config);
binding.Unbind(Request.ToGenericHttpRequest(), saml2AuthnResponse);
saml2AuthnResponse.CreateSession(claimsAuthenticationManager: new SAMLDefaultClaimsAuthenticationManager());
var returnUrl = binding.GetRelayStateQuery()[relayStateReturnUrl];
return Redirect(string.IsNullOrWhiteSpace(returnUrl) ? Url.Content("~/") : returnUrl);
}
В отладке printf на Saml2ResponseExtensions.cs CreateSession () ln.19 Я могу сказать, что он (вероятно?) Не выдает перед этой строкой (потому что я могу скопировать + вставить заново все предыдущие переменные во внешней области видимости, без проблем).
var sessionSecurityToken = lifetime.HasValue
? new SessionSecurityToken(transformedPrincipal, lifetime.Value)
...
@ AndersRevsgaard Есть идеи?