Code:
/ 4.0 / 4.0 / 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. //------------------------------------------------------------------------------ //// 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
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- IISUnsafeMethods.cs
- SqlFactory.cs
- DrawItemEvent.cs
- TreeNode.cs
- PropertyChangingEventArgs.cs
- SingleSelectRootGridEntry.cs
- TagMapCollection.cs
- DependencySource.cs
- TextRangeProviderWrapper.cs
- Context.cs
- ActionFrame.cs
- ConfigurationLocationCollection.cs
- UrlPath.cs
- PropertyItem.cs
- TranslateTransform3D.cs
- HostDesigntimeLicenseContext.cs
- RecipientInfo.cs
- BulletChrome.cs
- UserNamePasswordValidationMode.cs
- TypefaceCollection.cs
- Formatter.cs
- Util.cs
- SchemaCollectionPreprocessor.cs
- ToolStripCollectionEditor.cs
- ListBoxItemAutomationPeer.cs
- WeakReferenceKey.cs
- ReservationCollection.cs
- InvalidOperationException.cs
- SQLMoneyStorage.cs
- baseaxisquery.cs
- PasswordPropertyTextAttribute.cs
- TextElementEditingBehaviorAttribute.cs
- DiscoveryDocumentLinksPattern.cs
- CompatibleIComparer.cs
- SHA1Managed.cs
- OdbcConnectionStringbuilder.cs
- StrongTypingException.cs
- DataGridViewColumnDividerDoubleClickEventArgs.cs
- ApplicationContext.cs
- ResolvedKeyFrameEntry.cs
- KeyValueConfigurationCollection.cs
- serverconfig.cs
- DesignSurfaceCollection.cs
- _AuthenticationState.cs
- CfgSemanticTag.cs
- FileDialogCustomPlace.cs
- ResourceReferenceExpressionConverter.cs
- WebPartsPersonalizationAuthorization.cs
- GridViewEditEventArgs.cs
- ValidatorCompatibilityHelper.cs
- Range.cs
- DataServiceKeyAttribute.cs
- ImageListUtils.cs
- IMembershipProvider.cs
- EntityDataSourceWrapper.cs
- brushes.cs
- AudioBase.cs
- PlainXmlWriter.cs
- HtmlInputControl.cs
- TextLine.cs
- QuaternionKeyFrameCollection.cs
- IdentityManager.cs
- XmlChildNodes.cs
- AnimationStorage.cs
- WebPartAuthorizationEventArgs.cs
- ToolStripKeyboardHandlingService.cs
- RbTree.cs
- ComplexLine.cs
- ComponentManagerBroker.cs
- ConfigXmlSignificantWhitespace.cs
- mansign.cs
- DataRowCollection.cs
- DefaultSection.cs
- DateRangeEvent.cs
- RemotingServices.cs
- FtpRequestCacheValidator.cs
- UnsafeMethods.cs
- entitydatasourceentitysetnameconverter.cs
- UIElementCollection.cs
- Win32SafeHandles.cs
- RegexCaptureCollection.cs
- BamlResourceDeserializer.cs
- StateItem.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- CodeDirectiveCollection.cs
- DataGridRowHeader.cs
- NestedContainer.cs
- Document.cs
- ObjectAssociationEndMapping.cs
- ADConnectionHelper.cs
- assemblycache.cs
- OpenTypeCommon.cs
- Util.cs
- ColorConverter.cs
- WebScriptEnablingElement.cs
- ExpressionBindingCollection.cs
- XComponentModel.cs
- DataGridViewSortCompareEventArgs.cs
- CompoundFileStorageReference.cs
- RecordManager.cs