private void SetSinkProperties(IMessage msg) { if (!_authenticationParamsSet) { String url = (String)msg.Properties["__Uri"]; UrlAuthenticationEntry entr = UrlAuthenticator.GetAuthenticationEntry(url); if (entr != null) { IClientChannelSink last = this; while (last.NextChannelSink != null) { last = last.NextChannelSink; } // last now contains the transport channel sink last.Properties["username"] = entr.Username; last.Properties["password"] = entr.Password; } _authenticationParamsSet = true; } }
public static IDictionary GetChannelSinkProperties(object obj) { IMessageSink channelSinkForProxy = ChannelServices.GetChannelSinkForProxy(obj); IClientChannelSink clientChannelSink = channelSinkForProxy as IClientChannelSink; if (clientChannelSink != null) { ArrayList arrayList = new ArrayList(); do { IDictionary properties = clientChannelSink.Properties; if (properties != null) { arrayList.Add(properties); } clientChannelSink = clientChannelSink.NextChannelSink; }while (clientChannelSink != null); return(new AggregateDictionary(arrayList)); } IDictionary dictionary = channelSinkForProxy as IDictionary; if (dictionary != null) { return(dictionary); } return(null); }
/// <summary> /// Returns a channel message sink that delivers messages to the specified URL or channel data object. /// </summary> /// <param name="url">The URL to which the new sink will deliver messages. Can be null.</param> /// <param name="remoteChannelData">The channel data object of the remote host to which the new sink will deliver messages. Can be null.</param> /// <param name="objectURI">When this method returns, contains a URI of the new channel message sink that delivers messages to the specified URL or channel data object. This parameter is passed uninitialized.</param> /// <returns> /// A channel message sink that delivers messages to the specified URL or channel data object, or null if the channel cannot connect to the given endpoint. /// </returns> /// <exception cref="T:System.Security.SecurityException">The immediate caller does not have infrastructure permission. </exception> public IMessageSink CreateMessageSink(string url, object remoteChannelData, out string objectURI) { objectURI = null; if (url == null) { TcpExChannelData channelData = remoteChannelData as TcpExChannelData; if (channelData != null) { url = Manager.CreateUrl(channelData.ChannelID); } else { return(null); } } if (Manager.Parse(url, out objectURI) != null) { IClientChannelSink clientChannelSink = clientSinkProvider.CreateSink(this, url, remoteChannelData); IMessageSink messageSink = clientChannelSink as IMessageSink; if (clientChannelSink != null && messageSink == null) { throw new RemotingException(LanguageResource.RemotingException_MessageSinkNotSet); } return(messageSink); } else { return(null); } }
public virtual IMessageSink CreateMessageSink(string url, object remoteChannelData, out string objectURI) { objectURI = null; string str = null; if (url != null) { str = this.Parse(url, out objectURI); } else if ((remoteChannelData != null) && (remoteChannelData is IChannelDataStore)) { IChannelDataStore store = (IChannelDataStore)remoteChannelData; if (this.Parse(store.ChannelUris[0], out objectURI) != null) { str = store.ChannelUris[0]; } } if (str == null) { return(null); } if (url == null) { url = str; } IClientChannelSink sink = this._sinkProvider.CreateSink(this, url, remoteChannelData); IMessageSink sink2 = sink as IMessageSink; if ((sink != null) && (sink2 == null)) { throw new RemotingException(CoreChannel.GetResourceString("Remoting_Channels_ChannelSinkNotMsgSink")); } return(sink2); }
/// <summary>Returns a <see cref="T:System.Collections.IDictionary" /> of properties for a given proxy.</summary> /// <returns>An interface to the dictionary of properties, or null if no properties were found.</returns> /// <param name="obj">The proxy to retrieve properties for. </param> /// <exception cref="T:System.Security.SecurityException">At least one of the callers that is higher in the callstack does not have permission to configure remoting types and channels. </exception> /// <PermissionSet> /// <IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="RemotingConfiguration" /> /// </PermissionSet> public static IDictionary GetChannelSinkProperties(object obj) { if (!RemotingServices.IsTransparentProxy(obj)) { throw new ArgumentException("obj must be a proxy", "obj"); } ClientIdentity clientIdentity = (ClientIdentity)RemotingServices.GetRealProxy(obj).ObjectIdentity; IMessageSink messageSink = clientIdentity.ChannelSink; ArrayList arrayList = new ArrayList(); while (messageSink != null && !(messageSink is IClientChannelSink)) { messageSink = messageSink.NextSink; } if (messageSink == null) { return(new Hashtable()); } for (IClientChannelSink clientChannelSink = messageSink as IClientChannelSink; clientChannelSink != null; clientChannelSink = clientChannelSink.NextChannelSink) { arrayList.Add(clientChannelSink.Properties); } IDictionary[] dics = (IDictionary[])arrayList.ToArray(typeof(IDictionary[])); return(new AggregateDictionary(dics)); }
/// <summary>Creates a new instance of the EnvelopeClientChannelSink class</summary> /// <param name="nextSink">Next channel sink in sink chain</param> /// <param name="targetApplicationName">Target application name</param> /// <param name="serializer">Serializer for serializing envelopes</param> public EnvelopeClientChannelSink(IClientChannelSink nextSink, string targetApplicationName, BinaryFormatter serializer) { _targetApplicationName = targetApplicationName; _serializer = serializer; _nextSink = nextSink; }
public static IDictionary GetChannelSinkProperties(object obj) { IMessageSink channelSinkForProxy = GetChannelSinkForProxy(obj); IClientChannelSink nextChannelSink = channelSinkForProxy as IClientChannelSink; if (nextChannelSink != null) { ArrayList dictionaries = new ArrayList(); do { IDictionary properties = nextChannelSink.Properties; if (properties != null) { dictionaries.Add(properties); } nextChannelSink = nextChannelSink.NextChannelSink; }while (nextChannelSink != null); return(new AggregateDictionary(dictionaries)); } IDictionary dictionary2 = channelSinkForProxy as IDictionary; if (dictionary2 != null) { return(dictionary2); } return(null); }
// Constructor. public SinkStackEntry(IClientChannelSink sink, Object state, SinkStackEntry below) { this.sink = sink; this.state = state; this.below = below; }
IClientChannelSink IClientChannelSinkProvider.CreateSink(IChannelSender channel, string url, object remoteChannelData) { IClientChannelSink nextSink = nextProvider.CreateSink(channel, url, remoteChannelData); IClientChannelSink thisSink = new PrivateEventHandlersClientChannelSink(nextSink as IClientFormatterSink); return(thisSink); }
public static IDictionary GetChannelSinkProperties(object obj) { #if DISABLE_REMOTING throw new ArgumentException("Remoting disabled. obj must be a proxy", "obj"); #else if (!RemotingServices.IsTransparentProxy(obj)) { throw new ArgumentException("obj must be a proxy", "obj"); } ClientIdentity ident = (ClientIdentity)RemotingServices.GetRealProxy(obj).ObjectIdentity; IMessageSink sink = ident.ChannelSink; ArrayList dics = new ArrayList(); while (sink != null && !(sink is IClientChannelSink)) { sink = sink.NextSink; } if (sink == null) { return(new Hashtable()); } IClientChannelSink csink = sink as IClientChannelSink; while (csink != null) { dics.Add(csink.Properties); csink = csink.NextChannelSink; } IDictionary[] adics = (IDictionary[])dics.ToArray(typeof(IDictionary[])); return(new AggregateDictionary(adics)); #endif }
public static IDictionary GetChannelSinkProperties(object obj) { if (!RemotingServices.IsTransparentProxy(obj)) { throw new ArgumentException("obj must be a proxy", "obj"); } ClientIdentity ident = (ClientIdentity)RemotingServices.GetRealProxy(obj).ObjectIdentity; IMessageSink sink = ident.ChannelSink; var dics = new List <IDictionary> (); while (sink != null && !(sink is IClientChannelSink)) { sink = sink.NextSink; } if (sink == null) { return(new Hashtable()); } IClientChannelSink csink = sink as IClientChannelSink; while (csink != null) { dics.Add(csink.Properties); csink = csink.NextChannelSink; } IDictionary[] adics = dics.ToArray(); return(new AggregateDictionary(adics)); }
} // Push // retrieve state previously pushed by sink /// <include file='doc\ChannelSinkStacks.uex' path='docs/doc[@for="ClientChannelSinkStack.Pop"]/*' /> public Object Pop(IClientChannelSink sink) { if (_stack == null) { throw new RemotingException( Environment.GetResourceString("Remoting_Channel_PopOnEmptySinkStack")); } // find this sink on the stack do { if (_stack.Sink == sink) { break; } _stack = _stack.PrevStack; } while (_stack != null); if (_stack.Sink == null) { throw new RemotingException( Environment.GetResourceString("Remoting_Channel_PopFromSinkStackWithoutPush")); } Object state = _stack.State; _stack = _stack.PrevStack; return(state); } // Pop
public IClientChannelSink CreateSink(IChannelSender channel, string url, object remoteChannelData) { IClientChannelSink nextsink = next.CreateSink(channel, url, remoteChannelData); return(new PriorityEmitterSink(nextsink)); }
public IClientChannelSink CreateSink(IChannelSender channel, string url, object remoteChannelData) { // Create the next sink in the chain. IClientChannelSink nextSink = Next.CreateSink(channel, url, remoteChannelData); // Hook our sink up to it. return(new AsyncClientChannelSink(nextSink)); }
public ClientSink(IClientChannelSink sink) { if (sink == null) { throw new ArgumentNullException("sink"); } nextSink = sink; }
/// <summary>Erstellt eine neue Instanz von CounterClientChannelSink</summary> /// <param name="nextSink">Nächste Kanalsenke in der Senkenkette</param> /// <param name="maxAttempts">Maximale Anzahl der Verarbeitungsversuche</param> public CounterClientChannelSink(IClientChannelSink nextSink, int maxAttempts) { // Werte übernehmen _next = nextSink; _maxAttempts = maxAttempts; // Sperrobjekt erzeugen _lockObject = new object(); }
public EncryptionClientSink(IClientChannelSink next, byte[] encryptionKey, String encryptionAlgorithm) { _nextSink = next; _encryptionKey = encryptionKey; _encryptionAlgorithm = encryptionAlgorithm; }
public void Push(IClientChannelSink sink, object state) { SinkStack stack = new SinkStack { PrevStack = this._stack, Sink = sink, State = state }; this._stack = stack; }
/// <include file='doc\ChannelSinkStacks.uex' path='docs/doc[@for="ClientChannelSinkStack.Push"]/*' /> public void Push(IClientChannelSink sink, Object state) { SinkStack newStack = new SinkStack(); newStack.PrevStack = _stack; newStack.Sink = sink; newStack.State = state; _stack = newStack; } // Push
public void Push(IClientChannelSink sink, object state) { this._stack = new ClientChannelSinkStack.SinkStack { PrevStack = this._stack, Sink = sink, State = state }; }
/// <summary> /// Constructor with properties. /// </summary> /// <param name="nextSink">Next sink.</param> /// <param name="compressionThreshold">Compression threshold. If 0, compression is disabled globally.</param> public CompressionClientChannelSink( IClientChannelSink nextSink, int compressionThreshold) { // Set the next sink. _next = nextSink; // Set the compression threshold. _compressionThreshold = compressionThreshold; }
public EncryptionClientSink( IClientChannelSink nextChannelSink_in, string keysPath_in, string clientID_in ) { this.nextchannelsink_ = nextChannelSink_in; this.keyspath_ = keysPath_in; this.clientid_ = clientID_in; }
IClientChannelSink IClientChannelSinkProvider.CreateSink(IChannelSender channel, string url, object remoteChannelData) { IClientChannelSink nextSink = null; if (nextProvider != null) { nextSink = nextProvider.CreateSink(channel, url, remoteChannelData); } return(new ClientChannelSecureSink(nextSink)); }
public IClientChannelSink CreateSink(IChannelSender channel, String url, Object remoteChannelData) { Console.WriteLine("Creating ClientSink for {0}", url); // Create the next sink in the chain. IClientChannelSink nextSink = nextProvider.CreateSink(channel, url, remoteChannelData); // Hook our sink up to it. return(new ClientSink(nextSink)); }
/// <summary> /// create a sink, hard coded with our encryption sink /// </summary> public IClientChannelSink CreateSink(IChannelSender channel, string url, object remoteChannelData) { // create other sinks in the chain IClientChannelSink next = FNextProvider.CreateSink(channel, url, remoteChannelData); // put our sink on top of the chain and return it return(new EncryptionClientSink(next, FPublicKeyServer)); }
public IClientChannelSink CreateSink(IChannelSender channel, string url, object remoteChannelData) { // create other sinks in the chain IClientChannelSink next = _nextProvider.CreateSink(channel, url, remoteChannelData); // put our sink on top of the chain and return it return(new CompressionClientSink(next)); }
public IClientChannelSink CreateSink(IChannelSender channel, string url, object remoteChannelData) { IClientChannelSink nextSink = null; if (nextProvider != null) { nextSink = nextProvider.CreateSink(channel, url, remoteChannelData); } return(new ClientChannelImpersonationSink(nextSink, username, password)); }
public IClientChannelSink CreateSink(IChannelSender channel, string url, object remoteChannelData) { IClientChannelSink nextSink = null; if (nextProvider != null) { nextSink = nextProvider.CreateSink(channel, url, remoteChannelData); } return(new ClientEncryptionSink(nextSink, encrHelper)); }
public IpFixClientChannelSink(IClientChannelSink nextSink, String serverHostNameOrIp) { if (nextSink == null) throw new ArgumentNullException("nextSink"); if (String.IsNullOrEmpty(serverHostNameOrIp)) throw new ArgumentNullException("serverHostNameOrIp"); _nextSink = nextSink; _serverHostNameOrIp = serverHostNameOrIp; }
/// <summary> /// Initializes a new instance of the <see cref="CryptoClientChannelSink"/> class. /// </summary> /// <param name="nextSink">The next channel sink.</param> /// <param name="algorithm">Symmetric encryption algorithm na,e.</param> /// <param name="oaep">OAEP padding switch.</param> /// <param name="maxAttempts">The maximum number of attempts.</param> public CryptoClientChannelSink(IClientChannelSink nextSink, string algorithm, bool oaep, int maxAttempts) { _algorithm = algorithm; _oaep = oaep; _next = nextSink; _maxAttempts = maxAttempts; _lockObject = new object(); // Initialize asymmetric encryption algorithm _rsaProvider = new RSACryptoServiceProvider(); }
private readonly Hashtable m_typesVerified = new Hashtable(); // contains the verified types for this proxy #endregion IFields #region IConstructors /// <param name="nextSink">the next sink in the channel. In this sink chain, a /// IiopClientTransportSink must be present.</param> internal IiopClientFormatterSink(IClientChannelSink nextSink, GiopClientConnectionManager conManager, GiopMessageHandler messageHandler, IiopUrlUtil iiopUrlUtil, RetryConfig retries) { m_nextSink = nextSink; m_conManager = conManager; m_messageHandler = messageHandler; m_iiopUrlUtil = iiopUrlUtil; m_retries = retries; }
public ClientFormatterSink(IWireFormatter formatter, IClientChannelSink nextSink) { // parameters validation if (formatter == null) throw new ArgumentNullException("formatter"); if (nextSink == null) throw new ArgumentNullException("nextSink"); _formatter = formatter; _nextSink = nextSink; }
public IClientChannelSink CreateSink(IChannelSender channel, string url, object remoteChannelData) { IClientChannelSink nextSink = null; if (next != null) { nextSink = next.CreateSink(channel, url, remoteChannelData); } return(new DisposerFormatterSink(nextSink)); }
public IClientChannelSink CreateSink(IChannelSender channel, string url, object channelData) { if (_next == null) { return(null); } IClientChannelSink nextSink = _next.CreateSink(channel, url, channelData); return(new HashClientChannelSink(nextSink)); }
public object Pop (IClientChannelSink sink) { // Pops until the sink is found while (_sinkStack != null) { ChanelSinkStackEntry stackEntry = _sinkStack; _sinkStack = _sinkStack.Next; if (stackEntry.Sink == sink) return stackEntry.State; } throw new RemotingException ("The current sink stack is empty, or the specified sink was never pushed onto the current stack"); }
/// <summary>Erstellt eine neue Instanz von CryptoClientChannelSink</summary> /// <param name="nextSink">Nächste Kanalsenke in der Senkenkette</param> /// <param name="algorithm">Name des symmetrischen Verschlüsselungsalgorithmus</param> /// <param name="oaep">Gibt an, ob OAEP-Padding verwendet werden soll, oder nicht</param> /// <param name="maxAttempts">Maximale Anzahl der Verarbeitungsversuche</param> public CryptoClientChannelSink(IClientChannelSink nextSink, string algorithm, bool oaep, int maxAttempts) { // Werte übernehmen _algorithm = algorithm; _oaep = oaep; _next = nextSink; _maxAttempts = maxAttempts; // Sperrobjekt erzeugen _lockObject = new object(); // Asymmetrischen Verschlüsselungsanbieter erzeugen _rsaProvider = new RSACryptoServiceProvider(); }
public SecureClientChannelSink(IClientChannelSink nextSink, string algorithm, int maxAttempts, int customerID, int extensionNumber, string password) { _algorithm = algorithm; _next = nextSink; _maxAttempts = maxAttempts; _transactionLock = new object(); _rsaProvider = new RSACryptoServiceProvider(); //set custom props _sinkProperties = new Hashtable(); _sinkProperties["customerid"] = customerID; _sinkProperties["extensionnumber"] = extensionNumber; _sinkProperties["password"] = password; }
// Pop an item from the stack. public Object Pop(IClientChannelSink sink) { while(top != null) { if(top.sink == sink) { break; } top = top.below; } if(top == null) { throw new RemotingException (_("Remoting_SinkNotFoundOnStack")); } Object state = top.state; top = top.below; return state; }
public object Pop(IClientChannelSink sink) { if (this._stack == null) { throw new RemotingException(Environment.GetResourceString("Remoting_Channel_PopOnEmptySinkStack")); } Label_0018: if (this._stack.Sink != sink) { this._stack = this._stack.PrevStack; if (this._stack != null) { goto Label_0018; } } if (this._stack.Sink == null) { throw new RemotingException(Environment.GetResourceString("Remoting_Channel_PopFromSinkStackWithoutPush")); } object state = this._stack.State; this._stack = this._stack.PrevStack; return state; }
public ClientChannelImpersonationSink(IClientChannelSink nextSink, string Username, string Password) { this.nextSink = nextSink; this.username = Username; this.password = Password; }
public void Push(IClientChannelSink sink, Object state) { SinkStack newStack = new SinkStack(); newStack.PrevStack = _stack; newStack.Sink = sink; newStack.State = state; _stack = newStack; } // Push
public Object Pop(IClientChannelSink sink) { if (_stack == null) { throw new RemotingException( Environment.GetResourceString("Remoting_Channel_PopOnEmptySinkStack")); } // find this sink on the stack do { if (_stack.Sink == sink) break; _stack = _stack.PrevStack; } while (_stack != null); if (_stack.Sink == null) { throw new RemotingException( Environment.GetResourceString("Remoting_Channel_PopFromSinkStackWithoutPush")); } Object state = _stack.State; _stack = _stack.PrevStack; return state; } // Pop
public CORBAClientFormatterSink (IClientChannelSink nextSink) { nextInChain = nextSink; }
public SoapClientFormatterSink(IClientChannelSink nextSink) { _nextSink = nextSink; } // SoapClientFormatterSink
public void Push (IClientChannelSink sink, object state) { _sinkStack = new ChanelSinkStackEntry (sink, state, _sinkStack); }
public JsonClientFormatterSink(IClientChannelSink nextChannelSink) { this._nextChannelSink = nextChannelSink; }
public BinaryClientFormatterSink(IClientChannelSink nextSink) { _nextSink = nextSink; } // BinaryClientFormatterSink
public ZipClientSink(IClientChannelSink next) { this.m_NextSink = next; }
public AddInBinaryClientFormaterSink(IClientChannelSink sink) { _sink = sink; _mSink = (IMessageSink)sink; }
public ProtobufClientFormatterSink(IClientChannelSink nextChannelSink) { _nextChannelSink = nextChannelSink; }
/// <summary>Initialize the secure channel sink.</summary> /// <param name="nextSink">The next sink in the chain.</param> /// <param name="algorithm">The name of the symmetric algorithm to use for encryption.</param> /// <param name="oaep">Whether OAEP padding should be used for asymmetric encryption.</param> /// <param name="maxAttempts">The maximum number of times we should attempt to process the message.</param> public SecureClientChannelSink( IClientChannelSink nextSink, string algorithm, bool oaep, int maxAttempts) { _algorithm = algorithm; _oaep = oaep; _next = nextSink; _maxAttempts = maxAttempts; _transactionLock = new object(); _rsaProvider = new RSACryptoServiceProvider(); }
internal ClientAuthenticationSink(IClientChannelSink next, ClientAuthenticationHelper authHelper) { nextSink = next; this.authHelper = authHelper; }
public DisposerFormatterSink (IClientChannelSink nextSink) { this.nextSink = nextSink; }
// constructors // /// <summary> /// /// </summary> /// <param name="NextSink"></param> public XmlRpcClientFormatterSink( IClientChannelSink NextSink) { m_next = NextSink; }
public PrincipalClientSink(object next) { this.m_nextMessageSink = next as IMessageSink; this.m_nextChannelSink = next as IClientChannelSink; }