コード例 #1
0
ファイル: MessageSign.cs プロジェクト: openmedicus/SealApi
        public override SoapFilterResult ProcessMessage(SoapEnvelope envelope)
        {
            var        certificate = Signering.validateSignature(envelope.DocumentElement, "MessageSignature", "", NamespaceAlias.wsse, true);
            HashValues hv          = Signering.GetHashValues(envelope);

            if (hv.IsSingleSignOn)
            {
                if (certificate.GetCertHashString() == hv.ClientVOCESHash)
                {
                    return(SoapFilterResult.Continue);
                }
            }
            else
            {
                if (CertificateUtil.Validate(certificate))
                {
                    if (cf(certificate))
                    {
                        return(SoapFilterResult.Continue);
                    }
                }
                throw new Exception("certifikat ikke accepteret");
            }
            return(SoapFilterResult.Terminate);
        }
コード例 #2
0
ファイル: MessageSign.cs プロジェクト: openmedicus/SealApi
 public override SoapFilterResult ProcessMessage(SoapEnvelope envelope)
 {
     if (SericeUtil.versionsnummer(envelope) == "1.1")
     {
         if (cert != null)
         {
             Signering.Sign(envelope.DocumentElement, resrefs, "Security", NamespaceAlias.wsse, "MessageSignature", cert);
         }
     }
     return(SoapFilterResult.Continue);
 }
コード例 #3
0
ファイル: MessageSign.cs プロジェクト: openmedicus/SealApi
 public override SoapFilterResult ProcessMessage(SoapEnvelope envelope)
 {
     try
     {
         if (cert != null)
         {
             Signering.Sign(envelope.DocumentElement, reqrefs, "Security", NamespaceAlias.wsse, "MessageSignature", cert);
         }
         return(SoapFilterResult.Continue);
     }
     catch
     { }
     return(errorhandler.makeClientError(new ErrorType(ErrorCode.InternalError, "")));
 }
コード例 #4
0
ファイル: MessageSign.cs プロジェクト: openmedicus/SealApi
        public override SoapFilterResult ProcessMessage(SoapEnvelope envelope)
        {
            try
            {
                if (SericeUtil.versionsnummer(envelope) != "1.1" && ServiceAcceptOtherThan11)
                {
                    return(SoapFilterResult.Continue);
                }

                var certificate = Signering.validateSignature(envelope.DocumentElement, "MessageSignature", "", NamespaceAlias.wsse, true);
                if (certificate == null)
                {
                    return(errorhandler.makeServiceError(new ErrorType(ErrorCode.InvalidInput, "Fejl i MessageSignature")));
                }

                HashValues hv = Signering.GetHashValues(envelope);

                if (hv.IsSingleSignOn)
                {
                    if (certificate.GetCertHashString() == hv.ClientVOCESHash)
                    {
                        return(SoapFilterResult.Continue);
                    }
                }
                else
                {
                    if (cf(certificate))
                    {
                        return(SoapFilterResult.Continue);
                    }
                }
                return(errorhandler.makeServiceError(new ErrorType(ErrorCode.NotAuthorized, "MessageSignature ikke accepteret")));
            }
            catch (Exception ex)
            {
                return(errorhandler.makeServiceError(new ErrorType(ErrorCode.InternalError, "MessageSignServiceInFilter " + ex.Message)));
            }
        }