// Token: 0x060013A2 RID: 5026 RVA: 0x00078B90 File Offset: 0x00076D90 internal static SerializedClientSecurityContext Deserialize(Stream input) { XmlTextReader xmlTextReader = null; SerializedClientSecurityContext result; try { xmlTextReader = SafeXmlFactory.CreateSafeXmlTextReader(input); xmlTextReader.WhitespaceHandling = WhitespaceHandling.All; SerializedClientSecurityContext serializedClientSecurityContext = SerializedClientSecurityContext.Deserialize(xmlTextReader); result = serializedClientSecurityContext; } finally { if (xmlTextReader != null) { xmlTextReader.Close(); } } return(result); }
internal static void ParseProxyLanguagePostBody(Stream bodyStream, out CultureInfo culture, out string timeZoneKeyName, out bool isOptimized, out string destination, out SerializedClientSecurityContext serializedContext) { ExTraceGlobals.ProxyCallTracer.TraceDebug(0L, "ProxyLanguagePostRequest.ParseProxyLanguagePostBody"); culture = null; timeZoneKeyName = string.Empty; isOptimized = false; destination = string.Empty; serializedContext = null; XmlTextReader xmlTextReader = null; try { xmlTextReader = SafeXmlFactory.CreateSafeXmlTextReader(bodyStream); xmlTextReader.WhitespaceHandling = WhitespaceHandling.All; if (!xmlTextReader.Read() || XmlNodeType.Element != xmlTextReader.NodeType || StringComparer.OrdinalIgnoreCase.Compare(xmlTextReader.Name, ProxyLanguagePostRequest.rootElementName) != 0) { ProxyLanguagePostRequest.ThrowParserException(xmlTextReader, "Missing or invalid root node"); } if (xmlTextReader.MoveToFirstAttribute()) { do { if (StringComparer.OrdinalIgnoreCase.Compare(xmlTextReader.Name, ProxyLanguagePostRequest.timeZoneKeyNameAttributeName) == 0) { if (DateTimeUtilities.IsValidTimeZoneKeyName(xmlTextReader.Value)) { timeZoneKeyName = xmlTextReader.Value; ExTraceGlobals.ProxyDataTracer.TraceDebug <string>(0L, "Found timeZoneKeyName={0}", timeZoneKeyName); } else { ProxyLanguagePostRequest.ThrowParserException(xmlTextReader, "Invalid time zone id"); } } else if (StringComparer.OrdinalIgnoreCase.Compare(xmlTextReader.Name, ProxyLanguagePostRequest.localeIdAttributeName) == 0) { int num = -1; if (int.TryParse(xmlTextReader.Value, out num) && Culture.IsSupportedCulture(num)) { culture = Culture.GetCultureInfoInstance(num); ExTraceGlobals.ProxyDataTracer.TraceDebug <int>(0L, "Found localeId={0}", num); } else { ProxyLanguagePostRequest.ThrowParserException(xmlTextReader, "Invalid locale id"); } } else if (StringComparer.OrdinalIgnoreCase.Compare(xmlTextReader.Name, ProxyLanguagePostRequest.isOptimizedAttributeName) == 0) { int num2 = -1; if (int.TryParse(xmlTextReader.Value, out num2)) { isOptimized = (num2 == 1); ExTraceGlobals.ProxyDataTracer.TraceDebug <bool>(0L, "Found isOptimized={0}", isOptimized); } else { ProxyLanguagePostRequest.ThrowParserException(xmlTextReader, "Invalid is-optimized value"); } } else if (StringComparer.OrdinalIgnoreCase.Compare(xmlTextReader.Name, ProxyLanguagePostRequest.destinationAttributeName) == 0) { destination = xmlTextReader.Value; } else { ExTraceGlobals.ProxyTracer.TraceDebug(0L, "ProxyLanguagePostRequest.ParseProxyLanguagePostBody - Found invalid attribute, ignoring it."); } }while (xmlTextReader.MoveToNextAttribute()); } ExTraceGlobals.ProxyTracer.TraceDebug(0L, "Deserializing client context..."); serializedContext = SerializedClientSecurityContext.Deserialize(xmlTextReader); if (!xmlTextReader.Read() || XmlNodeType.EndElement != xmlTextReader.NodeType || StringComparer.OrdinalIgnoreCase.Compare(xmlTextReader.Name, ProxyLanguagePostRequest.rootElementName) != 0) { ProxyLanguagePostRequest.ThrowParserException(xmlTextReader, "Missing or invalid root node"); } } catch (XmlException ex) { ProxyLanguagePostRequest.ThrowParserException(xmlTextReader, string.Format("Parser threw an XML exception: {0}", ex.Message)); } finally { xmlTextReader.Close(); } }