public async Task <IActionResult> Get() { try { var clientCert = Request.HttpContext.Connection.ClientCertificate; // Validate signature var(msgErrorSign, certOut, type) = await ValidateSignatureAsync(Request); if (!string.IsNullOrEmpty(msgErrorSign)) { return(CreateErrorResponse(msgErrorSign, clientCert == null ? "Client cert emtpy." : "")); } // Return client cert information if (clientCert != null) { var sans = CertValidator.ParseOneRecordIDs(clientCert); return(CreateResultResponse(clientCert, sans)); } // Return signed cert in config, maybe this cert must get from URA return(CreateResultResponse(certOut)); } catch (Exception ex) { return(CreateExceptionResponse(ex)); } }
/// <summary> /// The function base process the return data to client /// </summary> /// <param name="cert">X509Certificate2 data</param> /// <returns></returns> private JsonResult ProcessRequest(X509Certificate2 cert) { return(new JsonResult(new OneRecordDummyResponse { subcriberID = new OneRecordTLSID { desc = Constants.TYPE_USER_CERTIFICATE, subjectDN = cert?.Subject, validFrom = "" + cert?.NotBefore, validTo = "" + cert?.NotAfter, issuerDN = cert?.Issuer, lastAuthenticatedAt = "" + DateTime.UtcNow, oneRecordIDList = CertValidator.ParseOneRecordIDs(cert) }, result = new OneRecordDummyData(), timestamp = DateTime.UtcNow.Ticks, message = Constants.VERIFY_OK, })); }