首页 > 解决方案 > 如何解决“处理请求时发生未处理的异常。”?

问题描述

当我们正在开发一个我们想要针对 Shibboleth IDP 授权的 web 应用程序时,我们收到以下错误,在 IDPP 似乎成功登录之后:

处理请求时发生未处理的异常。

UnexpectedInResponseToException:收到的消息包含意外的 InResponseTo“idd95739d3bc9e44efa1154b3e62a2e121”。未找到请求中的 cookie 保留状态,因此该消息不应具有 InResponseTo 属性。如果在执行 SP 启动的登录时设置的 cookie 丢失,通常会发生此错误。

Saml2Response.cs 第 153 行中的 Sustainsys.Saml2.Saml2P.Saml2Response.ReadAndValidateInResponseTo(XmlElement xml, Saml2Id expectedInResponseTo, IOptions options)

我们的 startup.cs 看起来像这样:

    services.AddAuthentication()
.AddSaml2(options =>
{
options.SPOptions.EntityId = new EntityId("https://adress.to.the.SP.net");
options.SPOptions.Compatibility.UnpackEntitiesDescriptorInIdentityProviderMetadata = true;

options.SPOptions.ReturnUrl = new Uri(@"https://adress.to.a.site.of.our.site.net.net/Saml/Session");

options.SPOptions.ServiceCertificates.Add(new X509Certificate2(@"wwwroot/mycert.pfx"));    // "Sustainsys.Saml2.Tests.pfx"

options.IdentityProviders.Add(
new IdentityProvider(
new EntityId("adress.to.the.IDP.net"), options.SPOptions) 
{
LoadMetadata = true,
MetadataLocation = ("https://adress.to.the.MetadataLocation.xml")

});

IdentityProvider idp;
var x = options.IdentityProviders.TryGetValue(new EntityId(Prov.Idp), out idp);

X509Certificate2 ssoTest = new X509Certificate2(@"wwwroot/sso-test.pem");
idp.SigningKeys.AddConfiguredKey(ssoTest);
});^^^

这是我在检查浏览器的 dev-tools cokkies 选项时看到的:

  1. 获取 200 BIGipServer~idm~ipv4-shib-test: ! Experimentation_subject_id:JSESSIONID:shib_idp_session:

  2. 发布 500 .AspNetCore.Antiforgery.w5W7x28NAI:ARRAffinity:Saml2.t8NpWx0u6S6zBFc97nzgN_IL:

  3. 获取 200 .AspNetCore.Antiforgery.w5W7x28NAIs:ARRAffinity:Saml2.5AYF3RXdiYbN3iolD0HCRu9P:

标签: c#cookiessamlsustainsys-saml2

解决方案


推荐阅读