Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / Configuration / CapabilitiesState.cs / 1305376 / 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 HttpCapabilitiesDefaultProvider.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; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- FactoryRecord.cs
- InputMethodStateTypeInfo.cs
- Simplifier.cs
- Size3DValueSerializer.cs
- SplayTreeNode.cs
- PenLineCapValidation.cs
- DrawingAttributesDefaultValueFactory.cs
- NativeRightsManagementAPIsStructures.cs
- IndexingContentUnit.cs
- PopOutPanel.cs
- Viewport2DVisual3D.cs
- WindowsSysHeader.cs
- TextElementEnumerator.cs
- DropDownHolder.cs
- ValidatedControlConverter.cs
- DesignerResources.cs
- WebPartExportVerb.cs
- DataGrid.cs
- DesignerAttributeInfo.cs
- ClrProviderManifest.cs
- InputMethodStateChangeEventArgs.cs
- WindowHelperService.cs
- StandardCommands.cs
- Wizard.cs
- RangeContentEnumerator.cs
- SqlDataSourceCommandEventArgs.cs
- RC2CryptoServiceProvider.cs
- AppDomainShutdownMonitor.cs
- ConnectionProviderAttribute.cs
- DBNull.cs
- TcpPortSharing.cs
- SettingsPropertyNotFoundException.cs
- StateRuntime.cs
- ProviderConnectionPoint.cs
- BodyGlyph.cs
- Misc.cs
- FirstMatchCodeGroup.cs
- PrtCap_Public.cs
- FixedFindEngine.cs
- MaterializeFromAtom.cs
- RSAPKCS1SignatureDeformatter.cs
- XPathDocumentNavigator.cs
- MessagingActivityHelper.cs
- EntityContainerEntitySetDefiningQuery.cs
- URL.cs
- XPathDocumentBuilder.cs
- TextSegment.cs
- EntitySqlException.cs
- DelegatingMessage.cs
- DropSource.cs
- DisposableCollectionWrapper.cs
- StickyNoteContentControl.cs
- XD.cs
- OperationParameterInfo.cs
- ExpandableObjectConverter.cs
- AnnotationComponentChooser.cs
- DBCommandBuilder.cs
- RequestSecurityToken.cs
- Helpers.cs
- Rules.cs
- CompressionTransform.cs
- WebControlsSection.cs
- RemoteX509AsymmetricSecurityKey.cs
- ContentValidator.cs
- FolderBrowserDialog.cs
- SqlTrackingService.cs
- XmlSerializerNamespaces.cs
- Label.cs
- Rss20FeedFormatter.cs
- ErrorWebPart.cs
- ShaderRenderModeValidation.cs
- ActiveDocumentEvent.cs
- Action.cs
- PropertyBuilder.cs
- DataList.cs
- ResourcePart.cs
- PersonalizationStateInfo.cs
- DesignerProperties.cs
- FillRuleValidation.cs
- ListDictionaryInternal.cs
- XmlReflectionImporter.cs
- ExtensionFile.cs
- initElementDictionary.cs
- Variable.cs
- StreamReader.cs
- PageCache.cs
- Bookmark.cs
- EnumCodeDomSerializer.cs
- XmlQueryContext.cs
- SpeechDetectedEventArgs.cs
- Activity.cs
- GregorianCalendarHelper.cs
- PostBackOptions.cs
- Label.cs
- SByte.cs
- Misc.cs
- DataGridTextBox.cs
- TrackingExtract.cs
- ProcessThread.cs
- ContractMapping.cs