private static void SetAdamServiceArgs(string instanceName, WriteVerboseDelegate writeVerbose) { string arguments = string.Concat(new string[] { "description ", ManageAdamService.GetAdamServiceName(instanceName), " \"", Strings.AdamServiceDescription, "\"" }); int num = Utils.LogRunProcess("sc.exe", arguments, null); if (num != 0) { writeVerbose(Strings.AdamFailedSetServiceArgs("sc.exe", num, "Description")); } arguments = string.Concat(new string[] { "config ", ManageAdamService.GetAdamServiceName(instanceName), " DisplayName= \"", Strings.AdamServiceDisplayName, "\"" }); num = Utils.LogRunProcess("sc.exe", arguments, null); if (num != 0) { writeVerbose(Strings.AdamFailedSetServiceArgs("sc.exe", num, "DisplayName")); } }
internal static bool IsKnownExceptionHandler(Exception exception, WriteVerboseDelegate writeVerbose) { if (exception is MapiRetryableException || exception is MapiPermanentException) { return(true); } if (exception is MailboxReplicationPermanentException || exception is MailboxReplicationTransientException) { writeVerbose(CommonUtils.FullExceptionMessage(exception)); return(true); } return(false); }
public static LivePartnerFederationMetadata LoadFrom(Uri partnerFederationMetadataEpr, WriteVerboseDelegate writeVerbose = null) { if (partnerFederationMetadataEpr == null) { throw new ArgumentNullException("partnerFederationMetadataEpr"); } if (writeVerbose == null) { writeVerbose = new WriteVerboseDelegate(LivePartnerFederationMetadata.NullWriteVerbose); } LivePartnerFederationMetadata livePartnerFederationMetadata = new LivePartnerFederationMetadata(writeVerbose); XPathDocument federationMetadataXPathDocument = livePartnerFederationMetadata.GetFederationMetadataXPathDocument(partnerFederationMetadataEpr); livePartnerFederationMetadata.TokenIssuerMetadataEpr = partnerFederationMetadataEpr; livePartnerFederationMetadata.Parse(federationMetadataXPathDocument); livePartnerFederationMetadata.PolicyReferenceUri = "EX_MBI_FED_SSL"; return(livePartnerFederationMetadata); }
internal static WebProxy GetWebProxy(WriteVerboseDelegate writeVerbose) { WebProxy result; try { WebProxy webProxy = null; Server localServer = LocalServerCache.LocalServer; if (localServer != null && localServer.InternetWebProxy != null) { writeVerbose(Strings.WebProxy(localServer.InternetWebProxy.ToString())); webProxy = new WebProxy(localServer.InternetWebProxy); } result = webProxy; } catch (NotSupportedException ex) { throw new LiveDomainServicesException(Strings.CannotSetProxy(ex.Message), ex); } return(result); }
private static int RunProcess(string fileName, string arguments, WriteVerboseDelegate writeVerbose) { TaskLogger.LogEnter(); writeVerbose(Strings.LogRunningCommand(fileName, arguments)); int exitCode; using (Process process = Process.Start(new ProcessStartInfo { FileName = fileName, Arguments = arguments, CreateNoWindow = true, WindowStyle = ProcessWindowStyle.Hidden, UseShellExecute = false })) { process.WaitForExit(); writeVerbose(Strings.LogProcessExitCode(fileName, process.ExitCode)); TaskLogger.LogExit(); exitCode = process.ExitCode; } return(exitCode); }
public static X509Certificate2 GetExchangeFederationCertByThumbprint(string thumbprint, WriteVerboseDelegate writeVerbose) { writeVerbose(Strings.SearchingForCertificate(thumbprint)); if (string.IsNullOrEmpty(thumbprint)) { throw new ArgumentNullException("thumbprint"); } X509Store x509Store = new X509Store(StoreName.My, StoreLocation.LocalMachine); Exception ex = null; try { x509Store.Open(OpenFlags.OpenExistingOnly); } catch (CryptographicException ex2) { ex = ex2; } catch (SecurityException ex3) { ex = ex3; } if (ex != null) { throw new FederationCertificateInvalidException(Strings.ErrorOpeningCertificateStore(x509Store.Name), ex); } try { X509Certificate2Collection x509Certificate2Collection = x509Store.Certificates.Find(X509FindType.FindByThumbprint, thumbprint, false); if (x509Certificate2Collection != null && x509Certificate2Collection.Count > 0) { return(x509Certificate2Collection[0]); } } finally { x509Store.Close(); } throw new FederationCertificateInvalidException(Strings.ErrorCertificateNotFound(thumbprint)); }
internal static X509Certificate2 LoadCertificateWithPrivateKey(string thumbprint, WriteVerboseDelegate writeVerbose) { X509Certificate2 exchangeFederationCertByThumbprint = FederationCertificate.GetExchangeFederationCertByThumbprint(thumbprint, writeVerbose); if (!exchangeFederationCertByThumbprint.HasPrivateKey) { writeVerbose(Strings.ErrorCertificateHasNoPrivateKey(thumbprint)); return(null); } try { if (!(exchangeFederationCertByThumbprint.PrivateKey is RSACryptoServiceProvider)) { writeVerbose(Strings.ErrorCertificateHasNoPrivateKey(thumbprint)); return(null); } } catch (CryptographicException) { writeVerbose(Strings.ErrorCertificateHasNoPrivateKey(thumbprint)); return(null); } catch (NotSupportedException) { writeVerbose(Strings.ErrorCertificateHasNoPrivateKey(thumbprint)); return(null); } return(exchangeFederationCertByThumbprint); }
protected ManageDelegationClient(string serviceEndpoint, string certificateThumbprint, WriteVerboseDelegate writeVerbose) { this.serviceEndpoint = serviceEndpoint; this.certificateThumbprint = certificateThumbprint; this.writeVerbose = writeVerbose; }
public static List <PropertyDefinition> CalculatePropertiesToRead(IDictionary <string, PropertyDefinition> outputPropertiesToDefinitionDic, IList <string> userSpecifiedProperties, IList <PropertyDefinition> mandatoryOutputProperties, IDictionary <PropertyDefinition, IList <PropertyDefinition> > propertyRelationship, IList <PropertyDefinition> specialPropertiesLeadToAllRead, WriteVerboseDelegate verboseDelegate) { List <PropertyDefinition> propertiesToRead = (from property in userSpecifiedProperties select outputPropertiesToDefinitionDic[property]).ToList <PropertyDefinition>(); if (mandatoryOutputProperties != null) { propertiesToRead.AddRange(from property in mandatoryOutputProperties where !propertiesToRead.Contains(property) select property); } if (propertyRelationship != null) { IEnumerable <IList <PropertyDefinition> > enumerable = from property in propertyRelationship where propertiesToRead.Contains(property.Key) select property into keyValue select keyValue.Value; foreach (IList <PropertyDefinition> list in enumerable) { PropertyDefinition[] source = (PropertyDefinition[])list; propertiesToRead.AddRange(from property in source where !propertiesToRead.Contains(property) select property); } } if (specialPropertiesLeadToAllRead != null) { foreach (PropertyDefinition propertyDefinition in specialPropertiesLeadToAllRead) { if (propertiesToRead.Contains(propertyDefinition)) { if (verboseDelegate != null) { verboseDelegate(Strings.VerboseAllPropertiesAreRead(propertyDefinition.Name)); } return(null); } } } if (propertiesToRead != null && verboseDelegate != null) { verboseDelegate(Strings.VerbosePropertiesRead(string.Join <PropertyDefinition>(",", propertiesToRead))); } return(propertiesToRead); }
private void ImportSchemaFile(string schemaMasterServer, string schemaFilePath, string macroName, string macroValue, WriteVerboseDelegate writeVerbose) { TaskLogger.LogEnter(); string fileName = Path.Combine(Environment.SystemDirectory, "ldifde.exe"); string text = Path.GetTempPath(); if (text[text.Length - 1] == '\\') { text = text.Substring(0, text.Length - 1); } string arguments = string.Format("-i -s \"{0}\" -f \"{1}\" -j \"{2}\" -c \"{3}\" \"{4}\"", new object[] { schemaMasterServer, schemaFilePath, text, macroName, macroValue.Replace("\"", "\\\\\"") }); int num = InstallExchangeSchema.RunProcess(fileName, arguments, writeVerbose); if (num != 0) { base.WriteError(new TaskException(Strings.SchemaImportProcessFailure(schemaFilePath, "ldifde.exe", num, Path.Combine(text, "ldif.err"))), ErrorCategory.InvalidOperation, null); } TaskLogger.LogExit(); }
internal static void RemoveMember(ADObject obj, IRecipientSession session, ADGroup destGroup, WriteVerboseDelegate writeVerbose) { if (destGroup.Members.Contains(obj.Id)) { destGroup.Members.Remove(obj.Id); SetupTaskBase.Save(destGroup, session); return; } writeVerbose(Strings.InfoIsNotMemberOfGroup(obj.DistinguishedName, destGroup.DistinguishedName)); }
internal static void RemovePolicyStorageBase(IConfigDataProvider dataSession, WriteVerboseDelegate writeVerboseDelegate, IEnumerable <UnifiedPolicyStorageBase> policyStorageBases) { ArgumentValidator.ThrowIfNull("dataSession", dataSession); ArgumentValidator.ThrowIfNull("writeVerboseDelegate", writeVerboseDelegate); if (policyStorageBases != null) { foreach (UnifiedPolicyStorageBase unifiedPolicyStorageBase in policyStorageBases) { writeVerboseDelegate(Strings.VerboseDeletePolicyStorageBaseObject(unifiedPolicyStorageBase.Name, unifiedPolicyStorageBase.GetType().Name)); dataSession.Delete(unifiedPolicyStorageBase); } } }
private static void InstallAdamInstance(string answerFileName, AdamServiceSettings adamServiceSettings, WriteVerboseDelegate writeVerbose) { TaskLogger.LogEnter(); ManageAdamService.RunAdamInstall(answerFileName); ManageAdamService.SetAdamServiceArgs(adamServiceSettings.InstanceName, writeVerbose); ManageAdamService.SetAcls(adamServiceSettings); TaskLogger.LogExit(); }
public static void InstallAdam(string instanceName, string dataPath, string logPath, int port, int sslPort, WriteVerboseDelegate writeVerbose) { Utils.CreateDirectory(dataPath, "DataFilesPath"); Utils.CreateDirectory(logPath, "LogFilesPath"); AdamServiceSettings.DeleteFromRegistry(instanceName); AdamServiceSettings adamServiceSettings = new AdamServiceSettings(instanceName, Path.Combine(dataPath, "Adam"), Path.Combine(logPath, "Adam"), port, sslPort); using (TempFileCollection tempFileCollection = new TempFileCollection()) { string answerFileName = ManageAdamService.MakeAnswerFile(tempFileCollection, adamServiceSettings); ManageAdamService.InstallAdamInstance(answerFileName, adamServiceSettings, writeVerbose); adamServiceSettings.SaveToRegistry(); } }
public PartnerFederationMetadata(WriteVerboseDelegate writeVerbose) { this.writeVerbose = writeVerbose; }
public static CompliancePolicySyncNotificationClient Create(IConfigurationSession configurationSession, WriteVerboseDelegate writeVerboseDelegate) { ArgumentValidator.ThrowIfNull("configurationSession", configurationSession); OrganizationId organizationId = configurationSession.GetOrgContainer().OrganizationId; return(ProvisioningCache.Instance.TryAddAndGetOrganizationDictionaryValue <CompliancePolicySyncNotificationClient, Workload>(CannedProvisioningCacheKeys.OrganizationUnifiedPolicyNotificationClients, organizationId, Workload.SharePoint, delegate() { if (writeVerboseDelegate != null) { writeVerboseDelegate(Strings.VerboseCreateNotificationClient(Workload.SharePoint.ToString())); } Uri syncSvrUrlFromCache = CompliancePolicySyncNotificationClient.GetSyncSvrUrlFromCache(SyncSvcEndPointType.RestOAuth); ICredentials credentials = UnifiedPolicyConfiguration.GetInstance().GetCredentials(configurationSession, null); Uri uri = null; Uri uri2 = null; UnifiedPolicyConfiguration.GetInstance().GetTenantSharePointUrls(configurationSession, out uri, out uri2); if (uri == null || uri2 == null || syncSvrUrlFromCache == null) { throw new CompliancePolicySyncNotificationClientException(Strings.ErrorCannotInitializeNotificationClientToSharePoint(uri, uri2, syncSvrUrlFromCache)); } SpCompliancePolicySyncNotificationClient result = new SpCompliancePolicySyncNotificationClient(uri, uri2, credentials, syncSvrUrlFromCache); if (writeVerboseDelegate != null) { writeVerboseDelegate(Strings.VerboseSpNotificationClientInfo(uri, syncSvrUrlFromCache, credentials.GetType().Name)); } return result; })); }
private LivePartnerFederationMetadata(WriteVerboseDelegate writeVerbose) : base(writeVerbose) { base.TokenIssuerCertReference = "stscer"; base.TokenIssuerPrevCertReference = "stsbcer"; }
public ManageDelegation1Client(string certificate, WriteVerboseDelegate writeVerbose) : base(LiveConfiguration.GetDomainServicesEpr().ToString(), certificate, writeVerbose) { this.manageDelegation = new ManageDelegation("ManageDelegation", new RemoteCertificateValidationCallback(ManageDelegationClient.InvalidCertificateHandler)); this.manageDelegation.ClientCertificates.Add(base.Certificate); }
public ManageDelegation2Client(string domain, string signingDomain, string certificateThumbprint, WriteVerboseDelegate writeVerbose) : base(LiveConfiguration.GetDomainServices2Epr().ToString(), certificateThumbprint, writeVerbose) { this.manageDelegation = new ManageDelegation2("ManageDelegation2", new RemoteCertificateValidationCallback(ManageDelegationClient.InvalidCertificateHandler)); this.manageDelegation.Authenticator = SoapHttpClientAuthenticator.Create(base.Certificate); this.manageDelegation.DomainOwnershipProofHeaderValue = new DomainOwnershipProofHeader { Domain = domain, HashAlgorithm = "SHA-512", Signature = Convert.ToBase64String(FederatedDomainProofAlgorithm.GetSignature(base.Certificate, signingDomain)) }; }