コード例 #1
0
        public EAuthResponseViewModel GetResponseAsync(string requestId)
        {
            //ToDo parse ResponseSaml
            //string samlResponse = eAuth.ResponseSaml;
            string samlResponse = string.Empty;

            // Отговорът би трябвало да е подписан със сертификат за еАвт на физически лица
            // с thumbprint "16ebe0544fbd2f9295b3b49a32587614db37b444" (bgEgovEAuthenticatorSigning.cer).
            SignUtil.Status signatureStatus = SignUtil.Status.Invalid;
            XmlDocument     doc             = new XmlDocument {
                PreserveWhitespace = true
            };

            try
            {
                doc.LoadXml(samlResponse);
                signatureStatus = SignUtil.ValidateXmlDocument(doc);
            }
            catch
            {
            }

            // TODO: Всички тези детайли имат смисъл само за debug екран. Да се орежат за масовата употреба.
            return(new EAuthResponseViewModel
            {
                //SamlResponseBeautified = XmlUtil.BeautifyXml(doc.OuterXml),
                //SamlResponse = samlResponse,
                //RelayState = eAuth.RelayState,
                //SignatureStatusCode = signatureStatus.ToString(),
                //SignatureStatusName = SignUtil.FormatStatus(signatureStatus),
                //Error = eAuth.Error,
                //PidTypeCode = eAuth.PidTypeCode,
                //PersonIdentifier = eAuth.PersonIdentifier,
                //PersonNamesLatin = eAuth.PersonName,
                //Email = eAuth.Email,
                //Phone = eAuth.Phone,
                //ExpirationDateTime = eAuth.ExpirationDateTime
            });
        }