C# code sample connection to the .SVC web service with WsTrust
A basic C# code sample demonstrating how to connect to the .SVC web service using ISHSTS credentials
using System;
using System.ServiceModel;
using System.Text;
namespace MyMetadataWithInfoShareSTS
{
class Program
{
static void Main(string[] args)
{
//Username/Password authentication. Comment out for windows authentication.
string userName = "admin";
string password = "admin";
try
{
// Create proxy instance
Application25ServiceReference.ApplicationClient applicationClient = new Application25ServiceReference.ApplicationClient();
applicationClient.ClientCredentials.UserName.UserName = userName;
applicationClient.ClientCredentials.UserName.Password = password;
// Execute the GetVersion call
string version = applicationClient.GetVersion();
Console.WriteLine(version);
// Create proxy instance
User25ServiceReference.UserClient userClient = new User25ServiceReference.UserClient();
//Username/Password authentication. Comment out for windows authentication.
userClient.ClientCredentials.UserName.UserName = userName;
userClient.ClientCredentials.UserName.Password = password;
// Create requested metadata xml
string xmlRequestedMetadata = "<ishfields>" +
"<ishfield name='USERNAME' level='none'/>" +
"<ishfield name='FISHUSERDISPLAYNAME' level='none'/>" +
"<ishfield name='FISHEMAIL' level='none'/>" +
"<ishfield name='FUSERGROUP' level='none'/>" +
"<ishfield name='FISHUSERROLES' level='none' ishvaluetype='element'/>" +
"<ishfield name='FISHEXTERNALID' level='none'/>" +
"</ishfields>";
// Execute the GetMyMetadata call
string xmlObjectList = userClient.GetMyMetadata(xmlRequestedMetadata);
Console.WriteLine(xmlObjectList);
}
//Catch all Application25 server exceptions that are generated after the request has been validated on the server and executes.
catch (FaultException<Application25ServiceReference.InfoShareFault> fex)
{
Console.WriteLine("API25 FaultException: {0}",fex);
Console.WriteLine("Action: {0}", fex.Action);
Console.WriteLine("Reason: {0}", fex.Reason);
Console.WriteLine("Description: {0}", fex.Detail.Description);
Console.WriteLine("InfoShareErrorNumber: {0}", fex.Detail.InfoShareErrorNumber);
Console.WriteLine("Origin: {0}", fex.Detail.Origin);
Console.WriteLine("XMLDetail: {0}", fex.Detail.XMLDetail);
}
//Catch all User25 server exceptions that are generated after the request has been validated on the server and executes.
catch (FaultException<User25ServiceReference.InfoShareFault> fex)
{
Console.WriteLine("User25 FaultException: {0}", fex);
Console.WriteLine("Action: {0}", fex.Action);
Console.WriteLine("Reason: {0}", fex.Reason);
Console.WriteLine("Description: {0}", fex.Detail.Description);
Console.WriteLine("InfoShareErrorNumber: {0}", fex.Detail.InfoShareErrorNumber);
Console.WriteLine("Origin: {0}", fex.Detail.Origin);
Console.WriteLine("XMLDetail: {0}", fex.Detail.XMLDetail);
}
//Catch all server exception that are generated before the request has been validated on the server and executes.
//e.g. Token validation
catch (FaultException fex)
{
Console.WriteLine("FaultException: {0}", fex);
Console.WriteLine("Action: {0}", fex.Action);
Console.WriteLine("Reason: {0}", fex.Reason);
}
//Catch the test
catch (Exception ex)
{
Console.WriteLine("Exception: {0}", ex);
}
finally
{
Console.WriteLine("Press any key...");
Console.ReadLine();
}
}
}
}