public void AfterReceiveReply(ref Message reply, object correlationState) { XmlDocument request = correlationState as XmlDocument; if (!reply.IsFault) { MessageBuffer msgbuf = reply.CreateBufferedCopy(int.MaxValue); var signcheck = new SealSignedXml(msgbuf.AsStream()); if (!signcheck.CheckEnvelopeSignature()) { throw new Exception("Response signature Error"); } reply = msgbuf.CreateMessage(); } }
public static IdCard SignIn(OioWsTrustRequest request, string endpointAdr) { var ss = WebPost(request.XAssertion, endpointAdr); var fault = ss.Element(NameSpaces.xsoap + "Body")?.Element(NameSpaces.xsoap + "Fault"); if (fault != null) { throw new FaultException(new FaultReason(fault.Element("faultstring")?.Value), new FaultCode(fault.Element("faultcode")?.Value), null); } var signed = new SealSignedXml(ss); if (!signed.CheckEnvelopeSignature()) { throw new FaultException(new FaultReason("Envelope Signature error"), new FaultCode("STS"), null); } var idCardModelBuilder = new IdCardModelBuilder(); return(idCardModelBuilder.BuildModel(ss.Descendants(NameSpaces.xsaml + "Assertion").First())); }