public static ViewState newViewStateFromXMLString(String viewStateXML) { ViewState viewState = null; int viewStateVersion = 0; String versionPattern = @"<Version>(.+)</Version>"; Match match = Regex.Match(viewStateXML, versionPattern, RegexOptions.Singleline); if (match.Success) { viewStateVersion = Int32.Parse(match.Groups[1].Value); } // if this is viewstate version 1 we need to patch a few things up if (viewStateVersion == 1) { String viewStatePattern = @"<ViewStateDeserialized>(.+)</ViewStateDeserialized>"; match = Regex.Match(viewStateXML, viewStatePattern, RegexOptions.Singleline); if (match.Success) { viewStateXML = viewStateXML.Replace(match.Groups[1].Value, HttpUtility.HtmlEncode(match.Groups[1].Value)); } // horrible horrible hack to account for RichTextBox removing CRLF with a LF...anyone have a better idea??? viewStateXML = viewStateXML.Replace("\n", "\r\n"); } XmlDocument dom = new XmlDocument(); StringReader reader = new StringReader(viewStateXML); dom.Load(reader); switch (viewStateVersion) { case 1: viewState = new ViewState_Dot_Net_1_0(dom); break; case 2: viewState = new ViewState_Dot_Net_2_0(dom); break; default: viewState = null; break; } return(viewState); }
public static ViewState newViewStateFromBase64String(String viewStateString) { ViewState viewState = null; int viewStateVersion = getViewStateVersionFromBase64String(viewStateString); switch (viewStateVersion) { case 1: viewState = new ViewState_Dot_Net_1_0(viewStateString); break; case 2: viewState = new ViewState_Dot_Net_2_0(viewStateString); break; default: viewState = null; break; } return(viewState); }
public static ViewState newViewStateFromXMLString(String viewStateXML) { ViewState viewState = null; int viewStateVersion = 0; String versionPattern = @"<Version>(.+)</Version>"; Match match = Regex.Match(viewStateXML, versionPattern, RegexOptions.Singleline); if (match.Success) { viewStateVersion = Int32.Parse(match.Groups[1].Value); } // if this is viewstate version 1 we need to patch a few things up if (viewStateVersion == 1) { String viewStatePattern = @"<ViewStateDeserialized>(.+)</ViewStateDeserialized>"; match = Regex.Match(viewStateXML, viewStatePattern, RegexOptions.Singleline); if (match.Success) { viewStateXML = viewStateXML.Replace(match.Groups[1].Value, HttpUtility.HtmlEncode(match.Groups[1].Value)); } // horrible horrible hack to account for RichTextBox removing CRLF with a LF...anyone have a better idea??? viewStateXML = viewStateXML.Replace("\n", "\r\n"); } XmlDocument dom = new XmlDocument(); StringReader reader = new StringReader(viewStateXML); dom.Load(reader); switch (viewStateVersion) { case 1: viewState = new ViewState_Dot_Net_1_0(dom); break; case 2: viewState = new ViewState_Dot_Net_2_0(dom); break; default: viewState = null; break; } return viewState; }
public static ViewState newViewStateFromBase64String(String viewStateString) { ViewState viewState = null; int viewStateVersion = getViewStateVersionFromBase64String(viewStateString); switch (viewStateVersion) { case 1: viewState = new ViewState_Dot_Net_1_0(viewStateString); break; case 2: viewState = new ViewState_Dot_Net_2_0(viewStateString); break; default: viewState = null; break; } return viewState; }