public async Task <ActionResult <SignedXmlModel> > VerifyFile([FromForm] IFormFile file) //XmlFile xmlFile { if (file?.Length > 0) { _logger.LogDebug("File Name - " + file.FileName); string contentString = await Adapter.ReadAsStringAsync(file); SignedXmlModel signedXml = Utility.GetSignedXmlModel(contentString); if (signedXml.success == false) { return(BadRequest(signedXml)); } else { return(signedXml); } } else { SignedXmlModel signedXml = new SignedXmlModel(); signedXml.error = "A file Should be Uploaded"; signedXml.success = false; return(BadRequest(signedXml)); } }
internal static SignedXmlModel GetSignedXmlModel(string contentString) { SignedXmlModel signedXml = new SignedXmlModel(); bool hasAnySignature; XmlDocument xmlDoc = new XmlDocument(); try { xmlDoc.LoadXml(contentString); } catch (Exception ex) { Console.WriteLine(ex); signedXml.success = false; signedXml.error = "File is not a valid XML"; return(signedXml); } try { signedXml.xml = GetXmlStringBeforeSigning(xmlDoc, out hasAnySignature); if (hasAnySignature) { List <CertificateModel> certs = XmlSign.GetAllSign(xmlDoc); if (certs == null) { signedXml.success = false; signedXml.error = "File was modified"; signedXml.xml = null; signedXml.signatures = null; return(signedXml); } signedXml.signatures = certs; } return(signedXml); } catch (Exception ex) { Console.WriteLine(ex); signedXml.success = false; signedXml.error = "Unknown Exception, Please check log File of XML Verifire Service"; signedXml.xml = null; signedXml.signatures = null; return(signedXml); } }
public ActionResult <SignedXmlModel> VerifyXmlString([FromForm] string xml) { //string xml = Request.Form["xml"]; if (xml?.Length == 0) { SignedXmlModel signedXml = new SignedXmlModel(); signedXml.error = "A xml string should be uploaded"; signedXml.success = false; return(BadRequest(signedXml)); } else { SignedXmlModel signedXml = Utility.GetSignedXmlModel(xml); if (signedXml.success == false) { return(BadRequest(signedXml)); } else { return(signedXml); } } }