Example #1
0
 public RightsManagementInformationSetting(XmlNode request, XmlNode response, IAirSyncUser user, CultureInfo cultureInfo, ProtocolLogger protocolLogger, MailboxLogger mailboxLogger) : base(request, response, protocolLogger)
 {
     this.user          = user;
     this.cultureInfo   = cultureInfo;
     this.mailboxLogger = mailboxLogger;
 }
        internal static List <ChainValidityStatus> ValidateCertificates(List <string> trustedCertificateList, List <string> certificateChainList, List <string> certificateList, bool checkCRL, int hashCodeForTracing, MailboxLogger mailboxLogger, bool againstADConfiguration, string organizationId)
        {
            X509Store trustedStore          = CertificateManager.AddChainCertsToStore(trustedCertificateList, hashCodeForTracing);
            X509Store chainBuildStore       = CertificateManager.AddChainCertsToStore(certificateChainList, hashCodeForTracing);
            List <ChainValidityStatus> list = new List <ChainValidityStatus>(certificateList.Count);

            foreach (string text in certificateList)
            {
                ChainContext chainContext = null;
                try
                {
                    X509Certificate2    certificate = new X509Certificate2(Convert.FromBase64String(text));
                    ChainValidityStatus item        = X509CertificateCollection.ValidateCertificate(certificate, null, X509KeyUsageFlags.NonRepudiation | X509KeyUsageFlags.DigitalSignature, checkCRL, trustedStore, chainBuildStore, ref chainContext, againstADConfiguration, organizationId);
                    list.Add(item);
                }
                catch (CryptographicException ex)
                {
                    if (mailboxLogger != null)
                    {
                        mailboxLogger.SetData(MailboxLogDataName.ValidateCertCommand_ProcessCommand_Per_Cert_Exception, ex.ToString());
                    }
                    AirSyncDiagnostics.TraceError <string, CryptographicException>(ExTraceGlobals.RequestTracer, null, "Failed to validate certificate: '{0}', Error: '{1}'", text, ex);
                    list.Add((ChainValidityStatus)2148098052U);
                }
                finally
                {
                    if (chainContext != null)
                    {
                        chainContext.Dispose();
                    }
                }
            }
            return(list);
        }
 public override bool GenerateResponsesXmlNode(XmlDocument xmlResponse, IAirSyncVersionFactory versionFactory, string deviceType, GlobalInfo globalInfo, ProtocolLogger protocolLogger, MailboxLogger mailboxLogger)
 {
     return(false);
 }
Example #4
0
        public override bool HasSchemaPropertyChanged(ISyncItem syncItem, int?[] oldChangeTrackingInformation, XmlDocument xmlResponse, MailboxLogger mailboxLogger)
        {
            bool    flag        = false;
            XmlNode xmlItemRoot = xmlResponse.CreateElement("ApplicationData", "AirSync:");

            try
            {
                this.EntityDataObject.Bind(syncItem.NativeItem);
                base.AirSyncDataObject.Bind(xmlItemRoot);
                base.AirSyncDataObject.CopyFrom(this.EntityDataObject);
            }
            catch (Exception ex)
            {
                if (!SyncCommand.IsItemSyncTolerableException(ex))
                {
                    throw;
                }
                if (mailboxLogger != null)
                {
                    mailboxLogger.SetData(MailboxLogDataName.MailboxSyncCommand_HasSchemaPropertyChanged_Exception, ex);
                }
                AirSyncUtility.ExceptionToStringHelper arg = new AirSyncUtility.ExceptionToStringHelper(ex);
                AirSyncDiagnostics.TraceError <AirSyncUtility.ExceptionToStringHelper>(ExTraceGlobals.RequestsTracer, this, "Sync-tolerable Entity conversion Exception was thrown. HasSchemaPropertyChanged() {0}", arg);
                flag = true;
            }
            finally
            {
                this.EntityDataObject.Unbind();
                base.AirSyncDataObject.Unbind();
            }
            if (!flag)
            {
                int?[] array = base.ChangeTrackFilter.UpdateChangeTrackingInformation(xmlItemRoot, oldChangeTrackingInformation);
                AirSyncDiagnostics.TraceDebug <int?[], int?[]>(ExTraceGlobals.RequestsTracer, this, "HasSchemaPropertyChanged oldCCI {0} newCCI {1}", oldChangeTrackingInformation, array);
                flag = !ChangeTrackingFilter.IsEqual(array, oldChangeTrackingInformation);
            }
            return(flag);
        }
 public override bool HasSchemaPropertyChanged(ISyncItem syncItem, int?[] oldChangeTrackingInformation, XmlDocument xmlResponse, MailboxLogger mailboxLogger)
 {
     throw new AirSyncPermanentException(HttpStatusCode.NotImplemented, StatusCode.UnexpectedItemClass, null, false)
           {
               ErrorStringForProtocolLogger = "NoSchemaPropChangeInRICacheSync"
           };
 }