Code:
/ FX-1434 / FX-1434 / 1.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
- DatagridviewDisplayedBandsData.cs
- CatalogPartChrome.cs
- RealizationContext.cs
- DefaultAsyncDataDispatcher.cs
- SingleAnimation.cs
- MethodImplAttribute.cs
- ConfigXmlComment.cs
- SectionInput.cs
- WebReferenceCollection.cs
- SizeAnimationClockResource.cs
- nulltextnavigator.cs
- MulticastOption.cs
- InputBuffer.cs
- __Filters.cs
- WebMessageFormatHelper.cs
- PathNode.cs
- DefinitionUpdate.cs
- SectionInput.cs
- NativeWindow.cs
- GridErrorDlg.cs
- WindowProviderWrapper.cs
- TdsParser.cs
- TypeBuilder.cs
- DXD.cs
- FormViewRow.cs
- SiteOfOriginPart.cs
- BamlResourceContent.cs
- CssTextWriter.cs
- DataGridViewColumn.cs
- AsyncResult.cs
- CodeMethodInvokeExpression.cs
- MapPathBasedVirtualPathProvider.cs
- VarRefManager.cs
- StructuredTypeEmitter.cs
- CompilerError.cs
- ModuleConfigurationInfo.cs
- GridViewCancelEditEventArgs.cs
- WbemException.cs
- RelativeSource.cs
- CryptoStream.cs
- _HeaderInfo.cs
- XmlSchemaNotation.cs
- PatternMatcher.cs
- WebEventTraceProvider.cs
- PropertyValidationContext.cs
- ButtonBase.cs
- HandlerWithFactory.cs
- validationstate.cs
- PolygonHotSpot.cs
- UInt64.cs
- IndexingContentUnit.cs
- XmlDomTextWriter.cs
- DebugHandleTracker.cs
- ToolStripStatusLabel.cs
- ParameterElementCollection.cs
- ArraySegment.cs
- AsynchronousChannel.cs
- BatchStream.cs
- InvalidFilterCriteriaException.cs
- ObjectFullSpanRewriter.cs
- ExpressionBuilderContext.cs
- EntityDataSourceDataSelection.cs
- StorageEntityContainerMapping.cs
- HtmlValidationSummaryAdapter.cs
- SqlNotificationRequest.cs
- ProcessHostMapPath.cs
- EventLogRecord.cs
- WindowsScrollBar.cs
- DataGridItemEventArgs.cs
- AssertFilter.cs
- XmlCharCheckingReader.cs
- SiteIdentityPermission.cs
- DropShadowEffect.cs
- HttpRuntime.cs
- PerfCounterSection.cs
- InfoCardRSAPKCS1KeyExchangeFormatter.cs
- SqlServices.cs
- CommandLibraryHelper.cs
- _SSPIWrapper.cs
- storepermissionattribute.cs
- LoginCancelEventArgs.cs
- ArgumentNullException.cs
- SetterBaseCollection.cs
- QilParameter.cs
- RightsManagementEncryptionTransform.cs
- MultiByteCodec.cs
- Formatter.cs
- FormatConvertedBitmap.cs
- UnmanagedMemoryAccessor.cs
- ReadWriteObjectLock.cs
- QilGeneratorEnv.cs
- ReadOnlyActivityGlyph.cs
- MultipleViewProviderWrapper.cs
- IPPacketInformation.cs
- XmlStreamStore.cs
- httpapplicationstate.cs
- SubclassTypeValidator.cs
- MissingMemberException.cs
- Mutex.cs
- ComboBoxItem.cs