Exemple #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Session"/> class.
        /// </summary>
        /// <param name="clientMode"><see cref="T:TcmCoreService.Configuration.ClientMode" /></param>
        /// <param name="targetUri">Target <see cref="T:System.Uri" /></param>
        /// <param name="domain">Optional domain</param>
        /// <param name="userName">Optional username</param>
        /// <param name="password">Optional password</param>
        public Session(ClientMode clientMode, Uri targetUri, String domain, String userName, String password) : base(targetUri, userName, password)
        {
            mClientMode = clientMode;
            mTargetUri  = targetUri;

            switch (clientMode)
            {
            case ClientMode.HttpClient:
                mClient = new SessionAwareCoreServiceClient(ClientConfiguration.ClientWSHttpBinding,
                                                            new EndpointAddress(ClientConfiguration.ClientWSHttpUri(targetUri)));
                break;

            case ClientMode.TcpClient:
            default:
                if (ClientConfiguration.IsRunningOnMono)
                {
                    throw new NotImplementedException("NetTcpBinding on Mono cannot be used with Tridion CoreService");
                }

                mClient = new SessionAwareCoreServiceClient(ClientConfiguration.ClientTcpBinding,
                                                            new EndpointAddress(ClientConfiguration.ClientTcpUri(targetUri)));
                break;
            }

            if (!String.IsNullOrEmpty(userName) && !String.IsNullOrEmpty(password))
            {
                if (!String.IsNullOrEmpty(domain))
                {
                    mCredentials = new NetworkCredential(userName, password, domain);
                }
                else
                {
                    mCredentials = new NetworkCredential(userName, password);
                }
            }
            else
            {
                mCredentials = CredentialCache.DefaultNetworkCredentials;
            }

            mClient.ClientCredentials.Windows.ClientCredential = mCredentials;
        }