[System.Security.SecurityCritical]  // auto-generated
        private IChannelInfo GetChannelInfoHelper()
        {
            ChannelInfo oldChannelInfo = channelInfo as ChannelInfo;

            if (oldChannelInfo == null)
            {
                return(channelInfo);
            }

            Object[] oldChannelData = oldChannelInfo.ChannelData;
            if (oldChannelData == null)
            {
                return(oldChannelInfo);
            }

            // <STRIP>This will work for the IIS scenario since the machine name + application name
            //   will differentiate the url. If we generalize this mechanism in the future,
            //   we should only [....] the url if the ObjRef is from the current appdomain.</STRIP>
            String[] bashInfo = (String[])CallContext.GetData("__bashChannelUrl");
            if (bashInfo == null)
            {
                return(oldChannelInfo);
            }

            String urlToBash      = bashInfo[0];
            String replacementUrl = bashInfo[1];

            // Copy channel info and go [....] urls.
            ChannelInfo newChInfo = new ChannelInfo();

            newChInfo.ChannelData = new Object[oldChannelData.Length];
            for (int co = 0; co < oldChannelData.Length; co++)
            {
                newChInfo.ChannelData[co] = oldChannelData[co];

                // see if this is one of the ones that we need to [....]
                ChannelDataStore channelDataStore = newChInfo.ChannelData[co] as ChannelDataStore;
                if (channelDataStore != null)
                {
                    String[] urls = channelDataStore.ChannelUris;
                    if ((urls != null) && (urls.Length == 1) && urls[0].Equals(urlToBash))
                    {
                        // We want to [....] just the url, so we do a shallow copy
                        // and replace the url array with the replacementUrl.
                        ChannelDataStore newChannelDataStore = channelDataStore.InternalShallowCopy();
                        newChannelDataStore.ChannelUris    = new String[1];
                        newChannelDataStore.ChannelUris[0] = replacementUrl;

                        newChInfo.ChannelData[co] = newChannelDataStore;
                    }
                }
            }

            return(newChInfo);
        } // GetChannelInfoHelper
Esempio n. 2
0
        [System.Security.SecurityCritical]  // auto-generated
        private IChannelInfo GetChannelInfoHelper()
        {
            ChannelInfo oldChannelInfo = channelInfo as ChannelInfo;

            if (oldChannelInfo == null)
            {
                return(channelInfo);
            }

            Object[] oldChannelData = oldChannelInfo.ChannelData;
            if (oldChannelData == null)
            {
                return(oldChannelInfo);
            }

            // <


            String[] bashInfo = (String[])CallContext.GetData("__bashChannelUrl");
            if (bashInfo == null)
            {
                return(oldChannelInfo);
            }

            String urlToBash      = bashInfo[0];
            String replacementUrl = bashInfo[1];

            // Copy channel info and go [....] urls.
            ChannelInfo newChInfo = new ChannelInfo();

            newChInfo.ChannelData = new Object[oldChannelData.Length];
            for (int co = 0; co < oldChannelData.Length; co++)
            {
                newChInfo.ChannelData[co] = oldChannelData[co];

                // see if this is one of the ones that we need to [....]
                ChannelDataStore channelDataStore = newChInfo.ChannelData[co] as ChannelDataStore;
                if (channelDataStore != null)
                {
                    String[] urls = channelDataStore.ChannelUris;
                    if ((urls != null) && (urls.Length == 1) && urls[0].Equals(urlToBash))
                    {
                        // We want to [....] just the url, so we do a shallow copy
                        // and replace the url array with the replacementUrl.
                        ChannelDataStore newChannelDataStore = channelDataStore.InternalShallowCopy();
                        newChannelDataStore.ChannelUris    = new String[1];
                        newChannelDataStore.ChannelUris[0] = replacementUrl;

                        newChInfo.ChannelData[co] = newChannelDataStore;
                    }
                }
            }

            return(newChInfo);
        } // GetChannelInfoHelper
Esempio n. 3
0
        } // GetObjectDataHelper

        // This method retrieves the channel info object to be serialized.
        // It does special checking to see if a channel url needs to be bashed
        // (currently used for switching "http://..." url to "https://...".
        private IChannelInfo GetChannelInfoHelper()
        {
            ChannelInfo oldChannelInfo = channelInfo as ChannelInfo;

            if (oldChannelInfo == null)
            {
                return(channelInfo);
            }

            Object[] oldChannelData = oldChannelInfo.ChannelData;
            if (oldChannelData == null)
            {
                return(oldChannelInfo);
            }

            String[] bashInfo = (String[])CallContext.GetData("__bashChannelUrl");
            if (bashInfo == null)
            {
                return(oldChannelInfo);
            }

            String urlToBash      = bashInfo[0];
            String replacementUrl = bashInfo[1];

            ChannelInfo newChInfo = new ChannelInfo();

            newChInfo.ChannelData = new Object[oldChannelData.Length];
            for (int co = 0; co < oldChannelData.Length; co++)
            {
                newChInfo.ChannelData[co] = oldChannelData[co];

                ChannelDataStore channelDataStore = newChInfo.ChannelData[co] as ChannelDataStore;
                if (channelDataStore != null)
                {
                    String[] urls = channelDataStore.ChannelUris;
                    if ((urls != null) && (urls.Length == 1) && urls[0].Equals(urlToBash))
                    {
                        ChannelDataStore newChannelDataStore = channelDataStore.InternalShallowCopy();
                        newChannelDataStore.ChannelUris    = new String[1];
                        newChannelDataStore.ChannelUris[0] = replacementUrl;

                        newChInfo.ChannelData[co] = newChannelDataStore;
                    }
                }
            }

            return(newChInfo);
        } // GetChannelInfoHelper
        private IChannelInfo GetChannelInfoHelper()
        {
            ChannelInfo channelInfo = this.channelInfo as ChannelInfo;

            if (channelInfo == null)
            {
                return(this.channelInfo);
            }
            object[] channelData = channelInfo.ChannelData;
            if (channelData == null)
            {
                return(channelInfo);
            }
            string[] array = (string[])CallContext.GetData("__bashChannelUrl");
            if (array == null)
            {
                return(channelInfo);
            }
            string      value        = array[0];
            string      text         = array[1];
            ChannelInfo channelInfo2 = new ChannelInfo();

            channelInfo2.ChannelData = new object[channelData.Length];
            for (int i = 0; i < channelData.Length; i++)
            {
                channelInfo2.ChannelData[i] = channelData[i];
                ChannelDataStore channelDataStore = channelInfo2.ChannelData[i] as ChannelDataStore;
                if (channelDataStore != null)
                {
                    string[] channelUris = channelDataStore.ChannelUris;
                    if (channelUris != null && channelUris.Length == 1 && channelUris[0].Equals(value))
                    {
                        ChannelDataStore channelDataStore2 = channelDataStore.InternalShallowCopy();
                        channelDataStore2.ChannelUris    = new string[1];
                        channelDataStore2.ChannelUris[0] = text;
                        channelInfo2.ChannelData[i]      = channelDataStore2;
                    }
                }
            }
            return(channelInfo2);
        }
Esempio n. 5
0
        private IChannelInfo GetChannelInfoHelper()
        {
            System.Runtime.Remoting.ChannelInfo channelInfo1 = this.channelInfo as System.Runtime.Remoting.ChannelInfo;
            if (channelInfo1 == null)
            {
                return(this.channelInfo);
            }
            object[] channelData = channelInfo1.ChannelData;
            if (channelData == null)
            {
                return((IChannelInfo)channelInfo1);
            }
            string[] strArray = (string[])CallContext.GetData("__bashChannelUrl");
            if (strArray == null)
            {
                return((IChannelInfo)channelInfo1);
            }
            string str1 = strArray[0];
            string str2 = strArray[1];

            System.Runtime.Remoting.ChannelInfo channelInfo2 = new System.Runtime.Remoting.ChannelInfo();
            channelInfo2.ChannelData = new object[channelData.Length];
            for (int index = 0; index < channelData.Length; ++index)
            {
                channelInfo2.ChannelData[index] = channelData[index];
                ChannelDataStore channelDataStore1 = channelInfo2.ChannelData[index] as ChannelDataStore;
                if (channelDataStore1 != null)
                {
                    string[] channelUris = channelDataStore1.ChannelUris;
                    if (channelUris != null && channelUris.Length == 1 && channelUris[0].Equals(str1))
                    {
                        ChannelDataStore channelDataStore2 = channelDataStore1.InternalShallowCopy();
                        channelDataStore2.ChannelUris    = new string[1];
                        channelDataStore2.ChannelUris[0] = str2;
                        channelInfo2.ChannelData[index]  = (object)channelDataStore2;
                    }
                }
            }
            return((IChannelInfo)channelInfo2);
        }
Esempio n. 6
0
        private IChannelInfo GetChannelInfoHelper()
        {
            System.Runtime.Remoting.ChannelInfo channelInfo = this.channelInfo as System.Runtime.Remoting.ChannelInfo;
            if (channelInfo == null)
            {
                return(this.channelInfo);
            }
            object[] channelData = channelInfo.ChannelData;
            if (channelData == null)
            {
                return(channelInfo);
            }
            string[] data = (string[])CallContext.GetData("__bashChannelUrl");
            if (data == null)
            {
                return(channelInfo);
            }
            string str  = data[0];
            string str2 = data[1];

            System.Runtime.Remoting.ChannelInfo info2 = new System.Runtime.Remoting.ChannelInfo {
                ChannelData = new object[channelData.Length]
            };
            for (int i = 0; i < channelData.Length; i++)
            {
                info2.ChannelData[i] = channelData[i];
                ChannelDataStore store = info2.ChannelData[i] as ChannelDataStore;
                if (store != null)
                {
                    string[] channelUris = store.ChannelUris;
                    if (((channelUris != null) && (channelUris.Length == 1)) && channelUris[0].Equals(str))
                    {
                        ChannelDataStore store2 = store.InternalShallowCopy();
                        store2.ChannelUris   = new string[] { str2 };
                        info2.ChannelData[i] = store2;
                    }
                }
            }
            return(info2);
        }