Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / Configuration / CapabilitiesState.cs / 1 / CapabilitiesState.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Configuration { using System.Collections; using System.Collections.Specialized; using System.Diagnostics; using System.Globalization; using System.Reflection; using System.Security; using System.Text; using System.Text.RegularExpressions; using System.Threading; using System.Web.Caching; using System.Web.Compilation; using System.Web.Hosting; using System.Security.Permissions; // // Encapsulates the evaluation state used in computing capabilities // internal class CapabilitiesState { internal HttpRequest _request; internal IDictionary _values; internal ArrayList _matchlist; internal ArrayList _regexlist; internal bool _exit; internal bool _evaluateOnlyUserAgent; internal CapabilitiesState(HttpRequest request, IDictionary values) { _request = request; _values = values; _matchlist = new ArrayList(); _regexlist = new ArrayList(); } internal bool EvaluateOnlyUserAgent { get { return _evaluateOnlyUserAgent; } set { _evaluateOnlyUserAgent = value; } } internal virtual void ClearMatch() { if (_matchlist == null) { _regexlist = new ArrayList(); _matchlist = new ArrayList(); } else { _regexlist.Clear(); _matchlist.Clear(); } } internal virtual void AddMatch(DelayedRegex regex, Match match) { _regexlist.Add(regex); _matchlist.Add(match); } internal virtual void PopMatch() { _regexlist.RemoveAt(_regexlist.Count - 1); _matchlist.RemoveAt(_matchlist.Count - 1); } internal virtual String ResolveReference(String refname) { if (_matchlist == null) return String.Empty; int i = _matchlist.Count; while (i > 0) { i--; int groupnum = ((DelayedRegex)_regexlist[i]).GroupNumberFromName(refname); if (groupnum >= 0) { Group group = ((Match)_matchlist[i]).Groups[groupnum]; if (group.Success) { return group.ToString(); } } } return String.Empty; } [AspNetHostingPermission(SecurityAction.Assert, Level=AspNetHostingPermissionLevel.Low)] string ResolveServerVariableWithAssert(string varname) { string result = _request.ServerVariables[varname]; if (result == null) return string.Empty; return result; } internal virtual String ResolveServerVariable(String varname) { if (varname.Length == 0 || varname == "HTTP_USER_AGENT") return HttpCapabilitiesEvaluator.GetUserAgent(_request); if (EvaluateOnlyUserAgent) return string.Empty; return ResolveServerVariableWithAssert(varname); } internal virtual String ResolveVariable(String varname) { String result; result = (String)_values[varname]; if (result == null) return String.Empty; return result; } internal virtual void SetVariable(String varname, String value) { _values[varname] = value; } internal virtual bool Exit { get { return _exit; } set { _exit = value; } } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- IntersectQueryOperator.cs
- ClientUtils.cs
- MetaForeignKeyColumn.cs
- FactoryId.cs
- OletxDependentTransaction.cs
- CodeEntryPointMethod.cs
- XmlSerializableWriter.cs
- Rule.cs
- AmbientProperties.cs
- ObjectPersistData.cs
- TextSegment.cs
- TextSegment.cs
- coordinatorfactory.cs
- SystemIPInterfaceProperties.cs
- FileAccessException.cs
- EmptyElement.cs
- HtmlUtf8RawTextWriter.cs
- DataAdapter.cs
- CuspData.cs
- StringInfo.cs
- figurelengthconverter.cs
- TemplatePropertyEntry.cs
- GetUserPreferenceRequest.cs
- GetLedgerRequest.cs
- InputDevice.cs
- DbConnectionOptions.cs
- HyperLinkField.cs
- SynchronizedDispatch.cs
- Clock.cs
- RequestSecurityTokenForRemoteTokenFactory.cs
- JsonObjectDataContract.cs
- MetadataItemEmitter.cs
- _BasicClient.cs
- SqlCacheDependencyDatabase.cs
- XmlRootAttribute.cs
- MatrixTransform.cs
- QuaternionAnimation.cs
- WebPartTransformer.cs
- LinkTarget.cs
- SiteOfOriginPart.cs
- TableLayoutSettings.cs
- compensatingcollection.cs
- ReferencedAssembly.cs
- XmlnsDictionary.cs
- CollectionConverter.cs
- FSWPathEditor.cs
- StateItem.cs
- PolicyLevel.cs
- XamlVector3DCollectionSerializer.cs
- HierarchicalDataSourceControl.cs
- BinaryKeyIdentifierClause.cs
- XmlSchemaObjectCollection.cs
- AccessText.cs
- UnitySerializationHolder.cs
- DataRelationCollection.cs
- TemplateKey.cs
- DbProviderSpecificTypePropertyAttribute.cs
- SoapAttributeOverrides.cs
- ImageCollectionEditor.cs
- KnownBoxes.cs
- xamlnodes.cs
- SparseMemoryStream.cs
- XmlNullResolver.cs
- RegexCharClass.cs
- HtmlTitle.cs
- ToolTip.cs
- Opcode.cs
- ISCIIEncoding.cs
- BaseCollection.cs
- BooleanAnimationBase.cs
- PointUtil.cs
- HtmlDocument.cs
- AppSettingsReader.cs
- Tokenizer.cs
- SmiContext.cs
- DocumentCollection.cs
- FaultConverter.cs
- RecognizedWordUnit.cs
- CursorConverter.cs
- NotSupportedException.cs
- MonthCalendar.cs
- Assembly.cs
- InputLanguageSource.cs
- JumpPath.cs
- TreeViewBindingsEditor.cs
- URLMembershipCondition.cs
- SynchronizationContext.cs
- LOSFormatter.cs
- AnchoredBlock.cs
- CmsUtils.cs
- CompilerTypeWithParams.cs
- AsyncOperationManager.cs
- BamlRecordHelper.cs
- ProxyHelper.cs
- DescriptionAttribute.cs
- Peer.cs
- AuthenticationModulesSection.cs
- peersecuritysettings.cs
- ListViewDataItem.cs
- __FastResourceComparer.cs