Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / 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;
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TwoPhaseCommit.cs
- WaitHandleCannotBeOpenedException.cs
- HttpClientCertificate.cs
- KnowledgeBase.cs
- RuleSettings.cs
- RedistVersionInfo.cs
- DataGridBoolColumn.cs
- DataGridTextBox.cs
- WindowsUserNameSecurityTokenAuthenticator.cs
- Expressions.cs
- MultiplexingDispatchMessageFormatter.cs
- DotAtomReader.cs
- FileUtil.cs
- ConstructorBuilder.cs
- FixedSOMTable.cs
- _NegoState.cs
- DesignerTransaction.cs
- SingleAnimationBase.cs
- SystemThemeKey.cs
- XmlObjectSerializerWriteContext.cs
- ValidationError.cs
- PrintDialogException.cs
- ListBindableAttribute.cs
- TraceFilter.cs
- HttpPostedFileWrapper.cs
- FileUpload.cs
- RegexBoyerMoore.cs
- QueryModel.cs
- MinimizableAttributeTypeConverter.cs
- ItemType.cs
- WebEventTraceProvider.cs
- WSHttpSecurity.cs
- DynamicScriptObject.cs
- ProjectionNode.cs
- LayoutTableCell.cs
- AnnotationResourceCollection.cs
- XmlLinkedNode.cs
- CommittableTransaction.cs
- XmlNodeWriter.cs
- RayMeshGeometry3DHitTestResult.cs
- ResXBuildProvider.cs
- TrackBar.cs
- LocalFileSettingsProvider.cs
- AdRotator.cs
- FormsIdentity.cs
- TextBoxLine.cs
- OleServicesContext.cs
- KeyValuePair.cs
- CompensationTokenData.cs
- BaseValidator.cs
- Timer.cs
- FormViewUpdateEventArgs.cs
- ApplicationTrust.cs
- UserPreferenceChangedEventArgs.cs
- SrgsOneOf.cs
- Console.cs
- NullableDoubleMinMaxAggregationOperator.cs
- HttpCookiesSection.cs
- CodeConditionStatement.cs
- StrokeNodeOperations.cs
- OleDbParameter.cs
- SQLConvert.cs
- ReadOnlyCollection.cs
- SqlBuffer.cs
- CodeAttributeArgumentCollection.cs
- SizeAnimationBase.cs
- OptimalTextSource.cs
- GetPageNumberCompletedEventArgs.cs
- QueryAccessibilityHelpEvent.cs
- HMACSHA256.cs
- FieldDescriptor.cs
- KeyBinding.cs
- Verify.cs
- _CacheStreams.cs
- DeleteHelper.cs
- DetailsViewModeEventArgs.cs
- ReferencedType.cs
- StateBag.cs
- ProxyElement.cs
- QuaternionAnimation.cs
- DocumentViewerBaseAutomationPeer.cs
- ToolStripDropDownClosingEventArgs.cs
- BufferedWebEventProvider.cs
- Bidi.cs
- LinkUtilities.cs
- MaterialCollection.cs
- Point3DCollectionConverter.cs
- QueryContinueDragEvent.cs
- StylusButton.cs
- TemplateKeyConverter.cs
- WindowsTokenRoleProvider.cs
- WebPartAuthorizationEventArgs.cs
- ColorContextHelper.cs
- PathStreamGeometryContext.cs
- SchemaTableColumn.cs
- TrackingParameters.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- DataPagerFieldCommandEventArgs.cs
- GridViewColumnHeader.cs
- ExpressionBindingCollection.cs