Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / Profile / ProfileInfo.cs / 1 / ProfileInfo.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* * ProfileInfo * * Copyright (c) 2002 Microsoft Corporation */ namespace System.Web.Profile { using System.Security.Principal; using System.Security.Permissions; using System.Collections; using System.Collections.Specialized; using System.Web.Configuration; using System.Web.Util; using System.Web.Security; using System.Web.Compilation; using System.Configuration; using System.Configuration.Provider; using System.Reflection; using System.CodeDom; [Serializable] [AspNetHostingPermission(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)] public class ProfileInfo { public ProfileInfo(string username, bool isAnonymous, DateTime lastActivityDate, DateTime lastUpdatedDate, int size) { if( username != null ) { username = username.Trim(); } _UserName = username; if (lastActivityDate.Kind == DateTimeKind.Local) { lastActivityDate = lastActivityDate.ToUniversalTime(); } _LastActivityDate = lastActivityDate; if (lastUpdatedDate.Kind == DateTimeKind.Local) { lastUpdatedDate = lastUpdatedDate.ToUniversalTime(); } _LastUpdatedDate = lastUpdatedDate; _IsAnonymous = isAnonymous; _Size = size; } protected ProfileInfo() { } public virtual string UserName { get { return _UserName;} } public virtual DateTime LastActivityDate { get { return _LastActivityDate.ToLocalTime();} } public virtual DateTime LastUpdatedDate { get { return _LastUpdatedDate.ToLocalTime(); } } public virtual bool IsAnonymous { get { return _IsAnonymous;} } public virtual int Size { get { return _Size; } } private string _UserName; private DateTime _LastActivityDate; private DateTime _LastUpdatedDate; private bool _IsAnonymous; private int _Size; } [Serializable] [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] public sealed class ProfileInfoCollection : IEnumerable, ICollection { private Hashtable _Hashtable = null; private ArrayList _ArrayList = null; private bool _ReadOnly = false; private int _CurPos = 0; private int _NumBlanks = 0; public ProfileInfoCollection() { _Hashtable = new Hashtable(10, StringComparer.CurrentCultureIgnoreCase); _ArrayList = new ArrayList(); } public void Add(ProfileInfo profileInfo) { if (_ReadOnly) throw new NotSupportedException(); if (profileInfo == null || profileInfo.UserName == null) throw new ArgumentNullException( "profileInfo" ); _Hashtable.Add(profileInfo.UserName, _CurPos); _ArrayList.Add(profileInfo); _CurPos++; } public void Remove(string name) { if (_ReadOnly) throw new NotSupportedException(); object pos = _Hashtable[name]; if (pos == null) return; _Hashtable.Remove(name); _ArrayList[(int)pos] = null; _NumBlanks++; } public ProfileInfo this[string name] { get { object pos = _Hashtable[name]; if (pos == null) return null; return _ArrayList[(int)pos] as ProfileInfo; } } public IEnumerator GetEnumerator() { DoCompact(); return _ArrayList.GetEnumerator(); } public void SetReadOnly() { if (_ReadOnly) return; _ReadOnly = true; } public void Clear() { if (_ReadOnly) throw new NotSupportedException(); _Hashtable.Clear(); _ArrayList.Clear(); _CurPos = 0; _NumBlanks = 0; } public int Count { get { return _Hashtable.Count; } } public bool IsSynchronized {get { return false;}} public object SyncRoot {get { return this;}} public void CopyTo(Array array, int index) { DoCompact(); _ArrayList.CopyTo(array, index); } public void CopyTo(ProfileInfo [] array, int index) { DoCompact(); _ArrayList.CopyTo(array, index); } private void DoCompact() { if (_NumBlanks < 1) return; ArrayList al = new ArrayList(_CurPos - _NumBlanks); int firstBlankPos = -1; for (int iter = 0; iter < _CurPos; iter++) { if (_ArrayList[iter] != null) al.Add(_ArrayList[iter]); else if (firstBlankPos == -1) firstBlankPos = iter; } _NumBlanks = 0; _ArrayList = al; _CurPos = _ArrayList.Count; for (int iter = firstBlankPos; iter < _CurPos; iter++) { ProfileInfo profileInfo = _ArrayList[iter] as ProfileInfo; _Hashtable[profileInfo.UserName] = iter; } } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DetailsViewDeletedEventArgs.cs
- VisualStyleTypesAndProperties.cs
- HtmlControl.cs
- WindowsStreamSecurityUpgradeProvider.cs
- RegexTree.cs
- GenericTypeParameterBuilder.cs
- HtmlShimManager.cs
- MetadataSerializer.cs
- COM2PropertyDescriptor.cs
- BaseValidator.cs
- FileDialogPermission.cs
- ImportContext.cs
- ContentPosition.cs
- Error.cs
- Triplet.cs
- GridViewPageEventArgs.cs
- Axis.cs
- GradientStop.cs
- ClrPerspective.cs
- KeyboardEventArgs.cs
- XmlSignatureProperties.cs
- TypeInfo.cs
- XPathNavigator.cs
- CodeBlockBuilder.cs
- ComboBoxDesigner.cs
- BlockingCollection.cs
- ForeignConstraint.cs
- FixUpCollection.cs
- ConfigurationSectionGroup.cs
- DoubleAnimationUsingKeyFrames.cs
- FormCollection.cs
- DataViewListener.cs
- TagMapCollection.cs
- GridSplitter.cs
- XmlTextEncoder.cs
- TextRangeEdit.cs
- ComboBox.cs
- PartialClassGenerationTask.cs
- FormatConvertedBitmap.cs
- PromptBuilder.cs
- ConnectionProviderAttribute.cs
- BCLDebug.cs
- DbParameterCollection.cs
- RenderDataDrawingContext.cs
- SiteIdentityPermission.cs
- RectangleHotSpot.cs
- mactripleDES.cs
- SQLInt16.cs
- IgnoreSection.cs
- MultiByteCodec.cs
- SimpleType.cs
- DataGridViewButtonCell.cs
- DateTimePicker.cs
- XMLDiffLoader.cs
- Schema.cs
- StyleXamlTreeBuilder.cs
- OletxResourceManager.cs
- TextRange.cs
- HandledMouseEvent.cs
- ListView.cs
- GenericTypeParameterBuilder.cs
- TextChangedEventArgs.cs
- ReferenceList.cs
- ObjectToken.cs
- XmlReaderSettings.cs
- mediapermission.cs
- BoundPropertyEntry.cs
- ProviderCommandInfoUtils.cs
- PipelineModuleStepContainer.cs
- ScriptReferenceEventArgs.cs
- RtfNavigator.cs
- JournalEntryStack.cs
- RijndaelManagedTransform.cs
- InfoCardUIAgent.cs
- AsymmetricSecurityBindingElement.cs
- UnsafeNativeMethods.cs
- mediaeventargs.cs
- BufferedGraphics.cs
- PriorityBindingExpression.cs
- NullableFloatSumAggregationOperator.cs
- Converter.cs
- MediaScriptCommandRoutedEventArgs.cs
- DesignerTransaction.cs
- EntityDataReader.cs
- RandomNumberGenerator.cs
- MimeWriter.cs
- ValidationHelpers.cs
- LoadedOrUnloadedOperation.cs
- XmlAttributes.cs
- InternalCache.cs
- Maps.cs
- CorrelationTokenTypeConvertor.cs
- MenuItemBindingCollection.cs
- ToolStripRenderer.cs
- DelayedRegex.cs
- GrabHandleGlyph.cs
- BitmapEffectCollection.cs
- Localizer.cs
- ValueExpressions.cs
- ApplicationCommands.cs