c# - 如何解决“处理请求时发生未处理的异常。”?
问题描述
当我们正在开发一个我们想要针对 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 选项时看到的:
获取 200 BIGipServer~idm~ipv4-shib-test: ! Experimentation_subject_id:JSESSIONID:shib_idp_session:
发布 500 .AspNetCore.Antiforgery.w5W7x28NAI:ARRAffinity:Saml2.t8NpWx0u6S6zBFc97nzgN_IL:
- 获取 200 .AspNetCore.Antiforgery.w5W7x28NAIs:ARRAffinity:Saml2.5AYF3RXdiYbN3iolD0HCRu9P:
解决方案
推荐阅读
- r - R控制轴号的科学格式
- reactjs - 如何访问组件外部的 redux 存储?
- php - 会话变量在 chrome 和边缘浏览器上的支付网关重定向上被重置
- angular - 如何将外部变量传递给 Angular Iframe?
- typescript - 枚举映射附加约束的条件类型
- android - 在一个 gradle 文件中设置所有依赖项?
- java - 如何将字符串分成小部分写入文件以节省内存?
- javascript - 使用 js 函数的整数不保留第一个 0
- ansible - 遍历字典,其中键的值再次是 ansible 中的列表
- tableview - TreeTableView 中不可编辑的子节点