CatalogSiteAgent Class

For the latest version of Commerce Server 2007 Help, see the Microsoft Web site.

The CatalogSiteAgent class contains configuration for a connection directly to a Commerce Server site's catalog database. This class cannot be inherited.

Namespace:  Microsoft.CommerceServer.Catalog
Assembly:  Microsoft.CommerceServer.Catalog (in Microsoft.CommerceServer.Catalog.dll)

public sealed class CatalogSiteAgent

The CatalogSiteAgent class contains configuration for a connection directly to a Commerce Server site's catalog database.

The SiteName is used to find the connection string to connect to the database and also to find the authorization configuration.

public CatalogContext GetCatalogContext()
  CatalogContext catalogContext = null;
  CatalogServiceAgent catalogServiceAgent = null;

    if (config.InitializationMode == ConnectionMode.Agent)
      if ((config.UserName == null) || (config.UserName.Equals(
        Environment.GetEnvironmentVariable("USERDOMAIN") + @"\" +
        // Default case when nothing is specified
        // Uses the user's default credentials when anonymous is not allowed
        catalogServiceAgent = new CatalogServiceAgent(config.WebServiceURL, ServiceAgent.DefaultAuthMethods);

        catalogContext = CatalogContext.Create(catalogServiceAgent);
      else if (config.UserName != null)
        // Create custom
        CredentialCache credentials = new CredentialCache();
        NetworkCredential networkCredential = new NetworkCredential();
        //create new uri with web service url
        System.Uri uri = new System.Uri(config.WebServiceURL);

        //add the user name, password, and domain to the network credential
        int index = config.UserName.IndexOf(@"\");
        networkCredential.UserName = config.UserName.Substring(index + 1);
        networkCredential.Password = config.Password;
        networkCredential.Domain = config.UserName.Substring(1, index - 1);

        //add the network credential to the credential cache collection
        credentials.Add(uri, "NTLM", networkCredential);

        catalogServiceAgent = new CatalogServiceAgent(config.WebServiceURL, ServiceAgent.DefaultAuthMethods);
        catalogServiceAgent.Credentials = credentials;

        catalogContext = CatalogContext.Create(catalogServiceAgent);
        throw new System.InvalidOperationException("Cannot perform this operation without initialization");
      CatalogSiteAgent csa = new CatalogSiteAgent();
      csa.AuthorizationMode = config.AuthorizationMode;
      csa.AuthorizationPolicyPath = config.AzManXmlFileStore;
      csa.IgnoreInventorySystem = config.IgnoreInventorySystem;
      csa.SiteName = config.SiteName;
      catalogContext = CatalogContext.Create(csa);
  catch (Exception e)
    Console.WriteLine("Error getting CatalogContext: " + e.Message);
    throw e;
  if (catalogContext != null)
    inventoryContext = catalogContext.InventoryContext;
  return catalogContext;


Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.