public static IdCard SignIn(XElement request, string endpointAdr) { var ss = WebPost(request, 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); } if (!new SealSignedXml(ss).CheckAssertionSignature()) { throw new FaultException(new FaultReason("Signature error"), new FaultCode("STS"), null); } var idCardModelBuilder = new IdCardModelBuilder(); return(idCardModelBuilder.BuildModel(ss.Descendants(NameSpaces.xsaml + "Assertion").First())); }
public IdCard DeserializeIdCard <T>(T assertion) { IdCardModelBuilder builder = new IdCardModelBuilder(); return(builder.BuildModel(SerializerUtil.Serialize(assertion).Root)); }