Code:
                         / Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / xsp / System / Web / HttpCookieCollection.cs / 1 / HttpCookieCollection.cs
                        
                        
                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
//  
//----------------------------------------------------------------------------- 
/* 
 * Collection of Http cookies for request and response intrinsics 
 *
 * Copyright (c) 1998 Microsoft Corporation 
 */
namespace System.Web {
 
    using System.Runtime.InteropServices;
    using System.Collections; 
    using System.Collections.Specialized; 
    using System.Security.Permissions;
    using System.Web.Util; 
    /// 
    ///     
    ///       Provides a type-safe
    ///       way to manipulate HTTP cookies. 
    ///      
    ///  
    [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] 
    public sealed class HttpCookieCollection : NameObjectCollectionBase {
        // Response object to notify about changes in collection
        private HttpResponse _response;
 
        // cached All[] arrays
        private HttpCookie[] _all; 
        private String[] _allKeys; 
        private bool    _changed;
 
        internal HttpCookieCollection(HttpResponse response, bool readOnly)
            : base(StringComparer.OrdinalIgnoreCase)  {
            _response = response;
            IsReadOnly = readOnly; 
        }
 
 
        /// 
        ///     
        ///       Initializes a new instance of the HttpCookieCollection
        ///       class.
        ///     
        ///   
        public HttpCookieCollection(): base(StringComparer.OrdinalIgnoreCase)  {
        } 
 
        internal bool Changed {
            get { return _changed; } 
            set { _changed = value; }
        }
        internal void AddCookie(HttpCookie cookie, bool append) {
            _all = null; 
            _allKeys = null;
 
            if (append) { 
                // mark cookie as new
                cookie.Added = true; 
                BaseAdd(cookie.Name, cookie);
            }
            else {
                if (BaseGet(cookie.Name) != null) { 
                    // mark the cookie as changed because we are overriding the existing one
                    cookie.Changed = true; 
                } 
                BaseSet(cookie.Name, cookie);
            } 
        }
        internal void RemoveCookie(String name) {
            _all = null; 
            _allKeys = null;
 
            BaseRemove(name); 
            _changed = true; 
        }
        internal void Reset() {
            _all = null; 
            _allKeys = null;
 
            BaseClear(); 
            _changed = true;
        } 
        //
        //  Public APIs to add / remove
        // 
 
        ///  
        ///    
        ///       Adds a cookie to the collection. 
        ///     
        ///  
        public void Add(HttpCookie cookie) {
            if (_response != null) 
                _response.BeforeCookieCollectionChange();
 
            AddCookie(cookie, true); 
            if (_response != null) 
                _response.OnCookieAdd(cookie);
        }
 
        /// 
        ///    [To be supplied.]  
        ///   
        public void CopyTo(Array dest, int index) {
            if (_all == null) { 
                int n = Count;
                _all = new HttpCookie[n];
                for (int i = 0; i < n; i++) 
                    _all[i] = Get(i);
            } 
            _all.CopyTo(dest, index); 
        }
 
        /// 
        ///     Updates the value of a cookie. 
        ///   
        public void Set(HttpCookie cookie) {
            if (_response != null) 
                _response.BeforeCookieCollectionChange(); 
            AddCookie(cookie, false); 
            if (_response != null)
                _response.OnCookieCollectionChange();
        } 
 
        ///  
        ///    
        ///       Removes a cookie from the collection. 
        ///     
        ///  
        public void Remove(String name) {
            if (_response != null) 
                _response.BeforeCookieCollectionChange();
 
            RemoveCookie(name); 
            if (_response != null) 
                _response.OnCookieCollectionChange();
        }
 
        /// 
        ///     
        ///       Clears all cookies from the collection. 
        ///     
        ///   
        public void Clear() {
            Reset();
        }
 
        //
        //  Access by name 
        // 
 
        /// 
        /// Returns an   item from the collection. 
        ///  
        public HttpCookie Get(String name) { 
            HttpCookie cookie = (HttpCookie)BaseGet(name);
 
            if (cookie == null && _response != null) { 
                // response cookies are created on demand
                cookie = new HttpCookie(name); 
                AddCookie(cookie, true);
                _response.OnCookieAdd(cookie);
            }
 
            return cookie;
        } 
 
        ///  
        ///    Indexed value that enables access to a cookie in the collection. 
        ///  
        public HttpCookie this[String name]
        { 
            get { return Get(name);}
        } 
 
        //
        // Indexed access 
        //
        ///  
        ///    
        ///       Returns an   
        ///       item from the collection. 
        ///     
        ///   
        public HttpCookie Get(int index) {
            return(HttpCookie)BaseGet(index);
        }
 
        ///  
        ///     
        ///       Returns key name from collection.
        ///      
        ///  
        public String GetKey(int index) {
            return BaseGetKey(index);
        } 
 
        ///  
        ///    
        ///       Default property. 
        ///       Indexed property that enables access to a cookie in the collection.
        ///     
        ///  
        public HttpCookie this[int index] 
        {
            get { return Get(index);} 
        } 
        // 
        // Access to keys and values as arrays
        //
        /* 
         * All keys
         */ 
 
        /// 
        ///     
        ///       Returns
        ///       an array of all cookie keys in the cookie collection.
        ///     
        ///   
        public String[] AllKeys {
            get { 
                if (_allKeys == null) 
                    _allKeys = BaseGetAllKeys();
 
                return _allKeys;
            }
        }
    } 
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
//  
//----------------------------------------------------------------------------- 
/* 
 * Collection of Http cookies for request and response intrinsics 
 *
 * Copyright (c) 1998 Microsoft Corporation 
 */
namespace System.Web {
 
    using System.Runtime.InteropServices;
    using System.Collections; 
    using System.Collections.Specialized; 
    using System.Security.Permissions;
    using System.Web.Util; 
    /// 
    ///     
    ///       Provides a type-safe
    ///       way to manipulate HTTP cookies. 
    ///      
    ///  
    [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] 
    public sealed class HttpCookieCollection : NameObjectCollectionBase {
        // Response object to notify about changes in collection
        private HttpResponse _response;
 
        // cached All[] arrays
        private HttpCookie[] _all; 
        private String[] _allKeys; 
        private bool    _changed;
 
        internal HttpCookieCollection(HttpResponse response, bool readOnly)
            : base(StringComparer.OrdinalIgnoreCase)  {
            _response = response;
            IsReadOnly = readOnly; 
        }
 
 
        /// 
        ///     
        ///       Initializes a new instance of the HttpCookieCollection
        ///       class.
        ///     
        ///   
        public HttpCookieCollection(): base(StringComparer.OrdinalIgnoreCase)  {
        } 
 
        internal bool Changed {
            get { return _changed; } 
            set { _changed = value; }
        }
        internal void AddCookie(HttpCookie cookie, bool append) {
            _all = null; 
            _allKeys = null;
 
            if (append) { 
                // mark cookie as new
                cookie.Added = true; 
                BaseAdd(cookie.Name, cookie);
            }
            else {
                if (BaseGet(cookie.Name) != null) { 
                    // mark the cookie as changed because we are overriding the existing one
                    cookie.Changed = true; 
                } 
                BaseSet(cookie.Name, cookie);
            } 
        }
        internal void RemoveCookie(String name) {
            _all = null; 
            _allKeys = null;
 
            BaseRemove(name); 
            _changed = true; 
        }
        internal void Reset() {
            _all = null; 
            _allKeys = null;
 
            BaseClear(); 
            _changed = true;
        } 
        //
        //  Public APIs to add / remove
        // 
 
        ///  
        ///    
        ///       Adds a cookie to the collection. 
        ///     
        ///  
        public void Add(HttpCookie cookie) {
            if (_response != null) 
                _response.BeforeCookieCollectionChange();
 
            AddCookie(cookie, true); 
            if (_response != null) 
                _response.OnCookieAdd(cookie);
        }
 
        /// 
        ///    [To be supplied.]  
        ///   
        public void CopyTo(Array dest, int index) {
            if (_all == null) { 
                int n = Count;
                _all = new HttpCookie[n];
                for (int i = 0; i < n; i++) 
                    _all[i] = Get(i);
            } 
            _all.CopyTo(dest, index); 
        }
 
        /// 
        ///     Updates the value of a cookie. 
        ///   
        public void Set(HttpCookie cookie) {
            if (_response != null) 
                _response.BeforeCookieCollectionChange(); 
            AddCookie(cookie, false); 
            if (_response != null)
                _response.OnCookieCollectionChange();
        } 
 
        ///  
        ///    
        ///       Removes a cookie from the collection. 
        ///     
        ///  
        public void Remove(String name) {
            if (_response != null) 
                _response.BeforeCookieCollectionChange();
 
            RemoveCookie(name); 
            if (_response != null) 
                _response.OnCookieCollectionChange();
        }
 
        /// 
        ///     
        ///       Clears all cookies from the collection. 
        ///     
        ///   
        public void Clear() {
            Reset();
        }
 
        //
        //  Access by name 
        // 
 
        /// 
        /// Returns an   item from the collection. 
        ///  
        public HttpCookie Get(String name) { 
            HttpCookie cookie = (HttpCookie)BaseGet(name);
 
            if (cookie == null && _response != null) { 
                // response cookies are created on demand
                cookie = new HttpCookie(name); 
                AddCookie(cookie, true);
                _response.OnCookieAdd(cookie);
            }
 
            return cookie;
        } 
 
        ///  
        ///    Indexed value that enables access to a cookie in the collection. 
        ///  
        public HttpCookie this[String name]
        { 
            get { return Get(name);}
        } 
 
        //
        // Indexed access 
        //
        ///  
        ///    
        ///       Returns an   
        ///       item from the collection. 
        ///     
        ///   
        public HttpCookie Get(int index) {
            return(HttpCookie)BaseGet(index);
        }
 
        ///  
        ///     
        ///       Returns key name from collection.
        ///      
        ///  
        public String GetKey(int index) {
            return BaseGetKey(index);
        } 
 
        ///  
        ///    
        ///       Default property. 
        ///       Indexed property that enables access to a cookie in the collection.
        ///     
        ///  
        public HttpCookie this[int index] 
        {
            get { return Get(index);} 
        } 
        // 
        // Access to keys and values as arrays
        //
        /* 
         * All keys
         */ 
 
        /// 
        ///     
        ///       Returns
        ///       an array of all cookie keys in the cookie collection.
        ///     
        ///   
        public String[] AllKeys {
            get { 
                if (_allKeys == null) 
                    _allKeys = BaseGetAllKeys();
 
                return _allKeys;
            }
        }
    } 
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
                        
                        
                        
                        
                    Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MenuItem.cs
 - Brushes.cs
 - Crc32.cs
 - IndependentlyAnimatedPropertyMetadata.cs
 - JsonXmlDataContract.cs
 - D3DImage.cs
 - FormsAuthenticationUser.cs
 - UnsafeNativeMethods.cs
 - JoinElimination.cs
 - ObjectListCommandEventArgs.cs
 - DurableInstanceProvider.cs
 - GeometryModel3D.cs
 - ColorMap.cs
 - CollectionViewSource.cs
 - AxParameterData.cs
 - CodeArrayIndexerExpression.cs
 - SiteMembershipCondition.cs
 - CookielessHelper.cs
 - StringUtil.cs
 - BridgeDataRecord.cs
 - SimplePropertyEntry.cs
 - UntypedNullExpression.cs
 - MappingMetadataHelper.cs
 - WebBrowser.cs
 - ValidationPropertyAttribute.cs
 - shaperfactory.cs
 - StringConcat.cs
 - GridView.cs
 - SynchronizedDispatch.cs
 - RootContext.cs
 - EngineSiteSapi.cs
 - DependencyPropertyDescriptor.cs
 - PageFunction.cs
 - VisualStyleInformation.cs
 - LayoutUtils.cs
 - RealProxy.cs
 - FlowDocumentPageViewerAutomationPeer.cs
 - NullableLongAverageAggregationOperator.cs
 - AnnotationResource.cs
 - HtmlAnchor.cs
 - RenderOptions.cs
 - IntSecurity.cs
 - TextBlock.cs
 - RowToParametersTransformer.cs
 - MulticastNotSupportedException.cs
 - XmlDocument.cs
 - ListViewUpdateEventArgs.cs
 - TextDecoration.cs
 - InstanceDataCollection.cs
 - SqlMethodAttribute.cs
 - WinHttpWebProxyFinder.cs
 - DependsOnAttribute.cs
 - SafeFileMapViewHandle.cs
 - DropDownButton.cs
 - ListViewUpdatedEventArgs.cs
 - ListBoxAutomationPeer.cs
 - WebBrowserUriTypeConverter.cs
 - RuntimeHandles.cs
 - PropertyItemInternal.cs
 - DocumentViewerBase.cs
 - HtmlButton.cs
 - Thread.cs
 - ConnectionStringsSection.cs
 - messageonlyhwndwrapper.cs
 - VisualCollection.cs
 - InvalidFilterCriteriaException.cs
 - DocobjHost.cs
 - EventLogQuery.cs
 - WebPartPersonalization.cs
 - SendKeys.cs
 - TdsParserHelperClasses.cs
 - GiveFeedbackEvent.cs
 - ItemContainerProviderWrapper.cs
 - TemplateBindingExpression.cs
 - SessionIDManager.cs
 - EntityUtil.cs
 - ManipulationDevice.cs
 - PreProcessor.cs
 - SoapFault.cs
 - followingquery.cs
 - SelectorAutomationPeer.cs
 - LinearKeyFrames.cs
 - DataKey.cs
 - BindingExpressionBase.cs
 - XappLauncher.cs
 - XmlArrayAttribute.cs
 - CodeVariableDeclarationStatement.cs
 - GridLengthConverter.cs
 - ContextMenuStripActionList.cs
 - EntityDesignerBuildProvider.cs
 - LayoutEditorPart.cs
 - _AutoWebProxyScriptWrapper.cs
 - MoveSizeWinEventHandler.cs
 - RegexCompiler.cs
 - PathFigureCollectionConverter.cs
 - Int16AnimationBase.cs
 - TypeBrowser.xaml.cs
 - WebBrowserDesigner.cs
 - TerminateWorkflow.cs
 - WebPartVerb.cs