// // internal constructor; inherit from parent // internal HttpCapabilitiesEvaluator(HttpCapabilitiesEvaluator parent) { int id = Interlocked.Increment(ref _idCounter); // don't do id.ToString() on every request, do it here _cacheKeyPrefix = _capabilitieskey + id.ToString() + "\n"; if (parent == null) { ClearParent(); } else { _rule = parent._rule; if (parent._variables == null) { _variables = null; } else { _variables = new Hashtable(parent._variables); } _cachetime = parent._cachetime; _resultType = parent._resultType; _useCache = parent._useCache; } }
/// <include file='doc\HttpCapabilitiesBase.uex' path='docs/doc[@for="HttpCapabilitiesBase.GetConfigCapabilities"]/*' /> /// <devdoc> /// <para>[To be supplied.]</para> /// </devdoc> public static HttpCapabilitiesBase GetConfigCapabilities(string configKey, HttpRequest request) { HttpCapabilitiesEvaluator capsbuilder = (HttpCapabilitiesEvaluator)request.Context.GetConfig(configKey); if (capsbuilder == null) { return(null); } else { return(capsbuilder.Evaluate(request)); } }
internal virtual String ResolveServerVariable(String varname) { String result; if (varname.Length == 0 || varname == "HTTP_USER_AGENT") { return(HttpCapabilitiesEvaluator.GetUserAgent(_request)); } if (EvaluateOnlyUserAgent) { return(""); } InternalSecurityPermissions.AspNetHostingPermissionLevelLow.Assert(); result = _request.ServerVariables[varname]; if (result == null) { return(""); } return(result); }
// // Handle the <result> tag // static void ProcessResult(HttpCapabilitiesEvaluator capabilitiesEvaluator, XmlNode node) { bool inherit = true; HandlerBase.GetAndRemoveBooleanAttribute(node, "inherit", ref inherit); if (inherit == false) { capabilitiesEvaluator.ClearParent(); } Type resultType = null; XmlNode attribute = HandlerBase.GetAndRemoveTypeAttribute(node, "type", ref resultType); if (attribute != null) { if (resultType.Equals(capabilitiesEvaluator._resultType) == false) { // be sure the new type is assignable to the parent type HandlerBase.CheckAssignableType(attribute, capabilitiesEvaluator._resultType, resultType); capabilitiesEvaluator._resultType = resultType; } } int cacheTime = 0; attribute = HandlerBase.GetAndRemovePositiveIntegerAttribute(node, "cacheTime", ref cacheTime); if (attribute != null) { capabilitiesEvaluator.SetCacheTime(cacheTime); } HandlerBase.GetAndRemoveBooleanAttribute(node, "cache", ref capabilitiesEvaluator._useCache); HandlerBase.CheckForUnrecognizedAttributes(node); HandlerBase.CheckForChildNodes(node); }