MergeSynchronizationAgent.PublisherSecurityMode Property
SQL Server 2008 R2
Gets or sets the security mode that is used when connecting to the Publisher.
Assembly: Microsoft.SqlServer.Replication (in Microsoft.SqlServer.Replication.dll)
Property Value
Type: Microsoft.SqlServer.Replication.SecurityModeA SecurityMode value that represents the security mode.
Implements
IMergeSynchronizationAgent.PublisherSecurityModeWhen possible, use Windows Authentication.
If the value is Standard, the PublisherLogin and PublisherPassword properties must also be specified.
// Define the server, publication, and database names. string subscriberName = subscriberInstance; string publisherName = publisherInstance; string distributorName = distributorInstance; string publicationName = "AdvWorksSalesOrdersMerge"; string subscriptionDbName = "AdventureWorks2008R2Replica"; string publicationDbName = "AdventureWorks2008R2"; string hostname = @"adventure-works\garrett1"; string webSyncUrl = "https://" + publisherInstance + "/SalesOrders/replisapi.dll"; // Create a connection to the Subscriber. ServerConnection conn = new ServerConnection(subscriberName); MergePullSubscription subscription; MergeSynchronizationAgent agent; try { // Connect to the Subscriber. conn.Connect(); // Define the pull subscription. subscription = new MergePullSubscription(); subscription.ConnectionContext = conn; subscription.DatabaseName = subscriptionDbName; subscription.PublisherName = publisherName; subscription.PublicationDBName = publicationDbName; subscription.PublicationName = publicationName; // If the pull subscription exists, then start the synchronization. if (subscription.LoadProperties()) { // Get the agent for the subscription. agent = subscription.SynchronizationAgent; // Check that we have enough metadata to start the agent. if (agent.PublisherSecurityMode == null) { // Set the required properties that could not be returned // from the MSsubscription_properties table. agent.PublisherSecurityMode = SecurityMode.Integrated; agent.DistributorSecurityMode = SecurityMode.Integrated; agent.Distributor = publisherName; agent.HostName = hostname; // Set optional Web synchronization properties. agent.UseWebSynchronization = true; agent.InternetUrl = webSyncUrl; agent.InternetSecurityMode = SecurityMode.Standard; agent.InternetLogin = winLogin; agent.InternetPassword = winPassword; } // Enable agent output to the console. agent.OutputVerboseLevel = 1; agent.Output = ""; // Synchronously start the Merge Agent for the subscription. agent.Synchronize(); } else { // Do something here if the pull subscription does not exist. throw new ApplicationException(String.Format( "A subscription to '{0}' does not exist on {1}", publicationName, subscriberName)); } } catch (Exception ex) { // Implement appropriate error handling here. throw new ApplicationException("The subscription could not be " + "synchronized. Verify that the subscription has " + "been defined correctly.", ex); } finally { conn.Disconnect(); }
' Define the server, publication, and database names. Dim subscriberName As String = subscriberInstance Dim publisherName As String = publisherInstance Dim publicationName As String = "AdvWorksSalesOrdersMerge" Dim subscriptionDbName As String = "AdventureWorks2008R2Replica" Dim publicationDbName As String = "AdventureWorks2008R2" Dim hostname As String = "adventure-works\garrett1" Dim webSyncUrl As String = "https://" + publisherInstance + "/SalesOrders/replisapi.dll" ' Create a connection to the Subscriber. Dim conn As ServerConnection = New ServerConnection(subscriberName) Dim subscription As MergePullSubscription Dim agent As MergeSynchronizationAgent Try ' Connect to the Subscriber. conn.Connect() ' Define the pull subscription. subscription = New MergePullSubscription() subscription.ConnectionContext = conn subscription.DatabaseName = subscriptionDbName subscription.PublisherName = publisherName subscription.PublicationDBName = publicationDbName subscription.PublicationName = publicationName ' If the pull subscription exists, then start the synchronization. If subscription.LoadProperties() Then ' Get the agent for the subscription. agent = subscription.SynchronizationAgent ' Check that we have enough metadata to start the agent. If agent.PublisherSecurityMode = Nothing Then ' Set the required properties that could not be returned ' from the MSsubscription_properties table. agent.PublisherSecurityMode = SecurityMode.Integrated agent.Distributor = publisherInstance agent.DistributorSecurityMode = SecurityMode.Integrated agent.HostName = hostname ' Set optional Web synchronization properties. agent.UseWebSynchronization = True agent.InternetUrl = webSyncUrl agent.InternetSecurityMode = SecurityMode.Standard agent.InternetLogin = winLogin agent.InternetPassword = winPassword End If ' Enable agent logging to the console. agent.OutputVerboseLevel = 1 agent.Output = "" ' Synchronously start the Merge Agent for the subscription. agent.Synchronize() Else ' Do something here if the pull subscription does not exist. Throw New ApplicationException(String.Format( _ "A subscription to '{0}' does not exist on {1}", _ publicationName, subscriberName)) End If Catch ex As Exception ' Implement appropriate error handling here. Throw New ApplicationException("The subscription could not be " + _ "synchronized. Verify that the subscription has " + _ "been defined correctly.", ex) Finally conn.Disconnect() End Try
