Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / HttpCookie.cs / 1305376 / HttpCookie.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* * HttpCookie - collection + name + path * * Copyright (c) 1998 Microsoft Corporation */ namespace System.Web { using System.Text; using System.Collections; using System.Collections.Specialized; using System.Globalization; using System.Security.Permissions; using System.Web.Configuration; using System.Web.Management; ////// public sealed class HttpCookie { private String _name; private String _path = "/"; private bool _secure; private bool _httpOnly; private String _domain; private bool _expirationSet; private DateTime _expires; private String _stringValue; private HttpValueCollection _multiValue; private bool _changed; private bool _added; internal HttpCookie() { _changed = true; } /* * Constructor - empty cookie with name */ ////// Provides a type-safe way /// to access multiple HTTP cookies. /// ////// public HttpCookie(String name) { _name = name; SetDefaultsFromConfig(); _changed = true; } /* * Constructor - cookie with name and value */ ////// Initializes a new instance of the ////// class. /// /// public HttpCookie(String name, String value) { _name = name; _stringValue = value; SetDefaultsFromConfig(); _changed = true; } private void SetDefaultsFromConfig() { HttpCookiesSection config = RuntimeConfig.GetConfig().HttpCookies; _secure = config.RequireSSL; _httpOnly = config.HttpOnlyCookies; if (config.Domain != null && config.Domain.Length > 0) _domain = config.Domain; } /* * Whether the cookie contents have changed */ internal bool Changed { get { return _changed; } set { _changed = value; } } /* * Whether the cookie has been added */ internal bool Added { get { return _added; } set { _added = value; } } /* * Cookie name */ ////// Initializes a new instance of the ////// class. /// /// public String Name { get { return _name;} set { _name = value; _changed = true; } } /* * Cookie path */ ////// Gets /// or sets the name of cookie. /// ////// public String Path { get { return _path;} set { _path = value; _changed = true; } } /* * 'Secure' flag */ ////// Gets or sets the URL prefix to transmit with the /// current cookie. /// ////// public bool Secure { get { return _secure;} set { _secure = value; _changed = true; } } ////// Indicates whether the cookie should be transmitted only over HTTPS. /// ////// public bool HttpOnly { get { return _httpOnly;} set { _httpOnly = value; _changed = true; } } /* * Cookie domain */ ////// Indicates whether the cookie should have HttpOnly attribute /// ////// public String Domain { get { return _domain;} set { _domain = value; _changed = true; } } /* * Cookie expiration */ ////// Restricts domain cookie is to be used with. /// ////// public DateTime Expires { get { return(_expirationSet ? _expires : DateTime.MinValue); } set { _expires = value; _expirationSet = true; _changed = true; } } /* * Cookie value as string */ ////// Expiration time for cookie (in minutes). /// ////// public String Value { get { if (_multiValue != null) return _multiValue.ToString(false); else return _stringValue; } set { if (_multiValue != null) { // reset multivalue collection to contain // single keyless value _multiValue.Reset(); _multiValue.Add(null, value); } else { // remember as string _stringValue = value; } _changed = true; } } /* * Checks is cookie has sub-keys */ ////// Gets /// or /// sets an individual cookie value. /// ////// public bool HasKeys { get { return Values.HasKeys();} } private bool SupportsHttpOnly(HttpContext context) { if (context != null && context.Request != null) { HttpBrowserCapabilities browser = context.Request.Browser; return (browser != null && (browser.Type != "IE5" || browser.Platform != "MacPPC")); } return false; } /* * Cookie values as multivalue collection */ ///Gets a /// value indicating whether the cookie has sub-keys. ////// public NameValueCollection Values { get { if (_multiValue == null) { // create collection on demand _multiValue = new HttpValueCollection(); // convert existing string value into multivalue if (_stringValue != null) { if (_stringValue.IndexOf('&') >= 0 || _stringValue.IndexOf('=') >= 0) _multiValue.FillFromString(_stringValue); else _multiValue.Add(null, _stringValue); _stringValue = null; } } _changed = true; return _multiValue; } } /* * Default indexed property -- lookup the multivalue collection */ ///Gets individual key:value pairs within a single cookie object. ////// public String this[String key] { get { return Values[key]; } set { Values[key] = value; _changed = true; } } /* * Construct set-cookie header */ internal HttpResponseHeader GetSetCookieHeader(HttpContext context) { StringBuilder s = new StringBuilder(); // cookiename= if (!String.IsNullOrEmpty(_name)) { s.Append(_name); s.Append('='); } // key=value&... if (_multiValue != null) s.Append(_multiValue.ToString(false)); else if (_stringValue != null) s.Append(_stringValue); // domain if (!String.IsNullOrEmpty(_domain)) { s.Append("; domain="); s.Append(_domain); } // expiration if (_expirationSet && _expires != DateTime.MinValue) { s.Append("; expires="); s.Append(HttpUtility.FormatHttpCookieDateTime(_expires)); } // path if (!String.IsNullOrEmpty(_path)) { s.Append("; path="); s.Append(_path); } // secure if (_secure) s.Append("; secure"); // httponly, Note: IE5 on the Mac doesn't support this if (_httpOnly && SupportsHttpOnly(context)) { s.Append("; HttpOnly"); } // return as HttpResponseHeader return new HttpResponseHeader(HttpWorkerRequest.HeaderSetCookie, s.ToString()); } } ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// public enum HttpCookieMode { UseUri, // cookieless=true UseCookies, // cookieless=false AutoDetect, // cookieless=AutoDetect; Probe if device is cookied UseDeviceProfile // cookieless=UseDeviceProfile; Base decision on caps } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ ///// Shortcut for HttpCookie$Values[key]. Required for ASP compatibility. /// ///// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* * HttpCookie - collection + name + path * * Copyright (c) 1998 Microsoft Corporation */ namespace System.Web { using System.Text; using System.Collections; using System.Collections.Specialized; using System.Globalization; using System.Security.Permissions; using System.Web.Configuration; using System.Web.Management; ////// public sealed class HttpCookie { private String _name; private String _path = "/"; private bool _secure; private bool _httpOnly; private String _domain; private bool _expirationSet; private DateTime _expires; private String _stringValue; private HttpValueCollection _multiValue; private bool _changed; private bool _added; internal HttpCookie() { _changed = true; } /* * Constructor - empty cookie with name */ ////// Provides a type-safe way /// to access multiple HTTP cookies. /// ////// public HttpCookie(String name) { _name = name; SetDefaultsFromConfig(); _changed = true; } /* * Constructor - cookie with name and value */ ////// Initializes a new instance of the ////// class. /// /// public HttpCookie(String name, String value) { _name = name; _stringValue = value; SetDefaultsFromConfig(); _changed = true; } private void SetDefaultsFromConfig() { HttpCookiesSection config = RuntimeConfig.GetConfig().HttpCookies; _secure = config.RequireSSL; _httpOnly = config.HttpOnlyCookies; if (config.Domain != null && config.Domain.Length > 0) _domain = config.Domain; } /* * Whether the cookie contents have changed */ internal bool Changed { get { return _changed; } set { _changed = value; } } /* * Whether the cookie has been added */ internal bool Added { get { return _added; } set { _added = value; } } /* * Cookie name */ ////// Initializes a new instance of the ////// class. /// /// public String Name { get { return _name;} set { _name = value; _changed = true; } } /* * Cookie path */ ////// Gets /// or sets the name of cookie. /// ////// public String Path { get { return _path;} set { _path = value; _changed = true; } } /* * 'Secure' flag */ ////// Gets or sets the URL prefix to transmit with the /// current cookie. /// ////// public bool Secure { get { return _secure;} set { _secure = value; _changed = true; } } ////// Indicates whether the cookie should be transmitted only over HTTPS. /// ////// public bool HttpOnly { get { return _httpOnly;} set { _httpOnly = value; _changed = true; } } /* * Cookie domain */ ////// Indicates whether the cookie should have HttpOnly attribute /// ////// public String Domain { get { return _domain;} set { _domain = value; _changed = true; } } /* * Cookie expiration */ ////// Restricts domain cookie is to be used with. /// ////// public DateTime Expires { get { return(_expirationSet ? _expires : DateTime.MinValue); } set { _expires = value; _expirationSet = true; _changed = true; } } /* * Cookie value as string */ ////// Expiration time for cookie (in minutes). /// ////// public String Value { get { if (_multiValue != null) return _multiValue.ToString(false); else return _stringValue; } set { if (_multiValue != null) { // reset multivalue collection to contain // single keyless value _multiValue.Reset(); _multiValue.Add(null, value); } else { // remember as string _stringValue = value; } _changed = true; } } /* * Checks is cookie has sub-keys */ ////// Gets /// or /// sets an individual cookie value. /// ////// public bool HasKeys { get { return Values.HasKeys();} } private bool SupportsHttpOnly(HttpContext context) { if (context != null && context.Request != null) { HttpBrowserCapabilities browser = context.Request.Browser; return (browser != null && (browser.Type != "IE5" || browser.Platform != "MacPPC")); } return false; } /* * Cookie values as multivalue collection */ ///Gets a /// value indicating whether the cookie has sub-keys. ////// public NameValueCollection Values { get { if (_multiValue == null) { // create collection on demand _multiValue = new HttpValueCollection(); // convert existing string value into multivalue if (_stringValue != null) { if (_stringValue.IndexOf('&') >= 0 || _stringValue.IndexOf('=') >= 0) _multiValue.FillFromString(_stringValue); else _multiValue.Add(null, _stringValue); _stringValue = null; } } _changed = true; return _multiValue; } } /* * Default indexed property -- lookup the multivalue collection */ ///Gets individual key:value pairs within a single cookie object. ////// public String this[String key] { get { return Values[key]; } set { Values[key] = value; _changed = true; } } /* * Construct set-cookie header */ internal HttpResponseHeader GetSetCookieHeader(HttpContext context) { StringBuilder s = new StringBuilder(); // cookiename= if (!String.IsNullOrEmpty(_name)) { s.Append(_name); s.Append('='); } // key=value&... if (_multiValue != null) s.Append(_multiValue.ToString(false)); else if (_stringValue != null) s.Append(_stringValue); // domain if (!String.IsNullOrEmpty(_domain)) { s.Append("; domain="); s.Append(_domain); } // expiration if (_expirationSet && _expires != DateTime.MinValue) { s.Append("; expires="); s.Append(HttpUtility.FormatHttpCookieDateTime(_expires)); } // path if (!String.IsNullOrEmpty(_path)) { s.Append("; path="); s.Append(_path); } // secure if (_secure) s.Append("; secure"); // httponly, Note: IE5 on the Mac doesn't support this if (_httpOnly && SupportsHttpOnly(context)) { s.Append("; HttpOnly"); } // return as HttpResponseHeader return new HttpResponseHeader(HttpWorkerRequest.HeaderSetCookie, s.ToString()); } } ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// public enum HttpCookieMode { UseUri, // cookieless=true UseCookies, // cookieless=false AutoDetect, // cookieless=AutoDetect; Probe if device is cookied UseDeviceProfile // cookieless=UseDeviceProfile; Base decision on caps } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007./// Shortcut for HttpCookie$Values[key]. Required for ASP compatibility. /// ///
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SubclassTypeValidator.cs
- XD.cs
- OdbcDataReader.cs
- _TLSstream.cs
- DocumentGridContextMenu.cs
- DataGridViewAdvancedBorderStyle.cs
- TypeValidationEventArgs.cs
- PagePropertiesChangingEventArgs.cs
- SmtpClient.cs
- SafeRightsManagementPubHandle.cs
- DocumentPageTextView.cs
- FontDriver.cs
- DataServiceKeyAttribute.cs
- XPathException.cs
- ResourcePool.cs
- Shape.cs
- XamlInt32CollectionSerializer.cs
- DataBindingCollection.cs
- GridViewUpdateEventArgs.cs
- XamlBrushSerializer.cs
- CodeMemberField.cs
- CodeArgumentReferenceExpression.cs
- DataGridCellsPresenter.cs
- DesignerRegionMouseEventArgs.cs
- DataConnectionHelper.cs
- XsltQilFactory.cs
- XsdSchemaFileEditor.cs
- Privilege.cs
- PropertyOrder.cs
- TraceUtility.cs
- MultiTouchSystemGestureLogic.cs
- DefaultCommandConverter.cs
- XamlSerializerUtil.cs
- ListViewInsertionMark.cs
- ModuleBuilderData.cs
- EmptyCollection.cs
- ParenthesizePropertyNameAttribute.cs
- Filter.cs
- BitmapEffectInput.cs
- PropertyInformationCollection.cs
- SpecialFolderEnumConverter.cs
- ModelItemCollection.cs
- TreeViewImageKeyConverter.cs
- ControllableStoryboardAction.cs
- EntityDataSource.cs
- TypeGenericEnumerableViewSchema.cs
- Int64KeyFrameCollection.cs
- XmlAttributeOverrides.cs
- ProcessHostMapPath.cs
- CheckBoxList.cs
- FocusManager.cs
- AndAlso.cs
- DataGridViewRowPrePaintEventArgs.cs
- GroupQuery.cs
- DirectoryRootQuery.cs
- Point3D.cs
- ISAPIApplicationHost.cs
- PointLightBase.cs
- AQNBuilder.cs
- PrimaryKeyTypeConverter.cs
- DataFormats.cs
- RelationshipDetailsRow.cs
- FrameworkRichTextComposition.cs
- SynchronizedDispatch.cs
- SelectionEditor.cs
- TextRange.cs
- FormViewDeletedEventArgs.cs
- SpecularMaterial.cs
- DynamicExpression.cs
- BoolExpression.cs
- HyperLinkField.cs
- ComplexLine.cs
- PostBackOptions.cs
- LazyTextWriterCreator.cs
- ConfigurationManagerInternal.cs
- ReverseInheritProperty.cs
- BuiltInExpr.cs
- SpoolingTaskBase.cs
- Events.cs
- EventLogConfiguration.cs
- ParentQuery.cs
- SchemaCollectionCompiler.cs
- TrustLevelCollection.cs
- TextStore.cs
- Nullable.cs
- MasterPageCodeDomTreeGenerator.cs
- BinaryConverter.cs
- XmlNamedNodeMap.cs
- localization.cs
- FunctionMappingTranslator.cs
- COMException.cs
- HandlerElementCollection.cs
- Encoder.cs
- CmsUtils.cs
- DisableDpiAwarenessAttribute.cs
- TraceHandlerErrorFormatter.cs
- RenderOptions.cs
- CustomAttributeFormatException.cs
- SettingsSavedEventArgs.cs
- RuntimeHandles.cs