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
- PerCallInstanceContextProvider.cs
- ExtentJoinTreeNode.cs
- LoginUtil.cs
- RowUpdatingEventArgs.cs
- TypeCollectionDesigner.xaml.cs
- CipherData.cs
- GridViewColumnCollectionChangedEventArgs.cs
- SaveFileDialog.cs
- MessageDecoder.cs
- InstanceDataCollectionCollection.cs
- DoubleStorage.cs
- TokenDescriptor.cs
- ListDictionary.cs
- SecurityTokenException.cs
- FormClosingEvent.cs
- EntityConnection.cs
- BitmapCodecInfo.cs
- CancellationHandlerDesigner.cs
- TailCallAnalyzer.cs
- TextBlock.cs
- BinaryCommonClasses.cs
- ScriptModule.cs
- AssemblyInfo.cs
- SynchronizationContextHelper.cs
- Comparer.cs
- SmiMetaData.cs
- ListBindingHelper.cs
- InteropAutomationProvider.cs
- XmlSerializerOperationFormatter.cs
- ContentDesigner.cs
- Pens.cs
- ContractMapping.cs
- IntellisenseTextBox.cs
- XmlNodeComparer.cs
- WebScriptEnablingElement.cs
- LayoutSettings.cs
- XmlSchemaSimpleContentExtension.cs
- PeerCollaboration.cs
- Rijndael.cs
- DataGridComboBoxColumn.cs
- InputManager.cs
- WebPartConnectVerb.cs
- ClientScriptManagerWrapper.cs
- SmiEventSink.cs
- RuleSetDialog.Designer.cs
- SymbolMethod.cs
- CommonProperties.cs
- TreeViewImageKeyConverter.cs
- EmptyCollection.cs
- CustomCategoryAttribute.cs
- Vector3DCollectionConverter.cs
- WebPartMenu.cs
- LambdaCompiler.cs
- TemplatedAdorner.cs
- RSAPKCS1KeyExchangeFormatter.cs
- UpdateExpressionVisitor.cs
- XPathAncestorQuery.cs
- SessionSwitchEventArgs.cs
- LocalValueEnumerator.cs
- PartitionedStream.cs
- LightweightCodeGenerator.cs
- ChannelManager.cs
- SqlMethodTransformer.cs
- ListViewTableCell.cs
- HttpCapabilitiesSectionHandler.cs
- ChildrenQuery.cs
- OracleConnectionStringBuilder.cs
- LogEntryHeaderv1Deserializer.cs
- UserNameSecurityTokenAuthenticator.cs
- TraceContextRecord.cs
- IdentifierService.cs
- MediaTimeline.cs
- FocusWithinProperty.cs
- COSERVERINFO.cs
- DefaultTraceListener.cs
- CalendarBlackoutDatesCollection.cs
- EditingMode.cs
- ToolTipService.cs
- ZipFileInfoCollection.cs
- BitmapEffect.cs
- While.cs
- InteropBitmapSource.cs
- PersonalizationEntry.cs
- AppDomainUnloadedException.cs
- IDictionary.cs
- BaseTypeViewSchema.cs
- WindowsComboBox.cs
- WeakReferenceEnumerator.cs
- CompositeFontParser.cs
- NavigationWindow.cs
- RankException.cs
- WeakRefEnumerator.cs
- Calendar.cs
- FlatButtonAppearance.cs
- WithStatement.cs
- StringBuilder.cs
- SkewTransform.cs
- BitConverter.cs
- StreamMarshaler.cs
- Function.cs