CatalogServiceAgent Constructor (Uri, String[])
Initializes a new instance of the CatalogServiceAgent class for communicating with a specific Web service using the provided type of Web service proxy object.
Namespace: Microsoft.CommerceServer.Catalog
Assembly: Microsoft.CommerceServer.Catalog (in Microsoft.CommerceServer.Catalog.dll)
Syntax
'Declaration
Public Sub New ( _
uri As Uri, _
supportedAuthMethods As String() _
)
'Usage
Dim uri As Uri
Dim supportedAuthMethods As String()
Dim instance As New CatalogServiceAgent(uri, supportedAuthMethods)
public CatalogServiceAgent(
Uri uri,
string[] supportedAuthMethods
)
public:
CatalogServiceAgent(
Uri^ uri,
array<String^>^ supportedAuthMethods
)
public function CatalogServiceAgent(
uri : Uri,
supportedAuthMethods : String[]
)
Parameters
- uri
Type: System..::.Uri
The URL of the Web service this agent will run against.
- supportedAuthMethods
Type: array<System..::.String>[]()[]
A list of authorization modes which are allowed.
Remarks
The ServiceAgent will not prompt on authentication failure.
The Catalog Agent serves to abstract data from the user interface. Additionally, it caches frequently changing data and batch-processes user interface queries.
Examples
public CatalogContext GetCatalogContext()
{
CatalogContext catalogContext = null;
CatalogServiceAgent catalogServiceAgent = null;
try
{
if (config.InitializationMode == ConnectionMode.Agent)
{//AGENT MODE
if ((config.UserName == null) || (config.UserName.Equals(
Environment.GetEnvironmentVariable("USERDOMAIN") + @"\" +
Environment.GetEnvironmentVariable("USERNAME"))))
{
// 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);
}
else
throw new System.InvalidOperationException("Cannot perform this operation without initialization");
}
else
{//INPROC MODE
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;
}
Permissions
- Full trust for the immediate caller. This member cannot be used by partially trusted code. For more information, see Using Libraries from Partially Trusted Code.