Documentation Center

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();
            }
        }
    }
}