Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / UI / ViewStateException.cs / 2 / ViewStateException.cs
namespace System.Web.UI { using System; using System.Runtime.Serialization; using System.Web; using System.Web.Util; using System.Globalization; using System.Security.Permissions; [Serializable] [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] public sealed class ViewStateException : Exception, ISerializable { // not in System.Web.txt because it should not be localized private const string _format = "\r\n\tClient IP: {0}\r\n\tPort: {1}\r\n\tUser-Agent: {2}\r\n\tViewState: {3}\r\n\tReferer: {4}\r\n\tPath: {5}"; private bool _isConnected = true; private string _remoteAddr; private string _remotePort; private string _userAgent; private string _persistedState; private string _referer; private string _path; private string _message; internal bool _macValidationError; public override string Message { get { return _message; } } public string RemoteAddress { get { return _remoteAddr; } } public string RemotePort { get { return _remotePort; } } public string UserAgent { get { return _userAgent; } } public string PersistedState { get { return _persistedState; } } public string Referer { get { return _referer; } } public string Path { get { return _path; } } public bool IsConnected { get { return _isConnected; } } private ViewStateException(SerializationInfo info, StreamingContext context) :base(info, context) { } // Create by calling appropriate Throw*Error method, which wraps the error // in an HttpException that displays a meaningful message at the top of the page. public ViewStateException() {} private ViewStateException(string message) {} private ViewStateException(string message, Exception e) {} private ViewStateException(Exception innerException, string persistedState): base(null, innerException) { Initialize(persistedState); } private void Initialize(string persistedState) { _persistedState = persistedState; HttpContext context = HttpContext.Current; HttpRequest request = context != null ? context.Request : null; HttpResponse response = context != null ? context.Response : null; // Return the generic viewstate error if the request does not have permission to ServerVariables if (request == null || response == null || !HttpRuntime.HasAspNetHostingPermission(AspNetHostingPermissionLevel.Low)) { _message = ShortMessage; return; } _isConnected = response.IsClientConnected; _remoteAddr = request.ServerVariables["REMOTE_ADDR"]; _remotePort = request.ServerVariables["REMOTE_PORT"]; _userAgent = request.ServerVariables["HTTP_USER_AGENT"]; _referer = request.ServerVariables["HTTP_REFERER"]; _path = request.ServerVariables["PATH_INFO"]; string debugInfo = String.Format(CultureInfo.InvariantCulture, _format, _remoteAddr, _remotePort, _userAgent, _persistedState, _referer, _path); _message = SR.GetString(SR.ViewState_InvalidViewStatePlus, debugInfo); } [SecurityPermissionAttribute(SecurityAction.Demand, SerializationFormatter=true)] public override void GetObjectData(SerializationInfo info, StreamingContext context) { base.GetObjectData(info, context); } internal string ShortMessage { get { return SR.ViewState_InvalidViewState; } } // if the client disconnected, we want to display that at the top of the error page private static string GetCorrectErrorPageMessage(ViewStateException vse, string message) { if (!vse.IsConnected) return SR.GetString(SR.ViewState_ClientDisconnected); else return SR.GetString(message); } private static void ThrowError(Exception inner, string persistedState, string errorPageMessage, bool macValidationError) { ViewStateException middle; HttpException outer; middle = new ViewStateException(inner, persistedState); middle._macValidationError = macValidationError; // Setup the formatter for this exception, to make sure this message shows up // in an error page as opposed to the inner-most exception's message. outer = new HttpException(GetCorrectErrorPageMessage(middle, errorPageMessage), middle); outer.SetFormatter(new UseLastUnhandledErrorFormatter(outer)); throw outer; } internal static void ThrowMacValidationError(Exception inner, string persistedState) { ThrowError(inner, persistedState, SR.ViewState_AuthenticationFailed, true); } internal static void ThrowViewStateError(Exception inner, string persistedState) { ThrowError(inner, persistedState, SR.Invalid_ControlState, false); } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- HttpAsyncResult.cs
- AxHost.cs
- Metadata.cs
- SizeConverter.cs
- InvalidComObjectException.cs
- TextTreeExtractElementUndoUnit.cs
- GACIdentityPermission.cs
- XmlParserContext.cs
- EventDescriptor.cs
- CachedCompositeFamily.cs
- SmtpMail.cs
- TextTreeTextElementNode.cs
- DataObject.cs
- SystemIdentity.cs
- DataTableMappingCollection.cs
- ResourceType.cs
- SqlClientWrapperSmiStreamChars.cs
- XmlFormatExtensionPointAttribute.cs
- MatrixTransform.cs
- WebServiceMethodData.cs
- PkcsMisc.cs
- ServerType.cs
- ReliableInputConnection.cs
- ImpersonationContext.cs
- _SecureChannel.cs
- HtmlElement.cs
- StatusStrip.cs
- SspiSecurityTokenProvider.cs
- DesignerDeviceConfig.cs
- XmlBinaryReader.cs
- UpdateTracker.cs
- BaseParser.cs
- ByteStorage.cs
- Function.cs
- WindowsTab.cs
- RoleGroup.cs
- AmbientLight.cs
- MasterPageBuildProvider.cs
- IOException.cs
- ModuleConfigurationInfo.cs
- Atom10FeedFormatter.cs
- SqlLiftWhereClauses.cs
- DataGridViewRowCollection.cs
- ToolStripLabel.cs
- MDIClient.cs
- ElementHostAutomationPeer.cs
- objectquery_tresulttype.cs
- Cursors.cs
- LabelAutomationPeer.cs
- ToolStripItemClickedEventArgs.cs
- ImageClickEventArgs.cs
- BitStack.cs
- PathStreamGeometryContext.cs
- CapiSafeHandles.cs
- ObjectDataSourceChooseTypePanel.cs
- TimeoutException.cs
- DataSourceViewSchemaConverter.cs
- FaultDescriptionCollection.cs
- XmlSequenceWriter.cs
- XmlSchemaFacet.cs
- DocumentViewerHelper.cs
- TextSelectionHelper.cs
- SessionPageStateSection.cs
- WindowsEditBox.cs
- DefaultSection.cs
- DoubleLink.cs
- Internal.cs
- PresentationAppDomainManager.cs
- ConfigurationPermission.cs
- VectorCollectionConverter.cs
- SecurityTokenValidationException.cs
- InputScopeAttribute.cs
- AnnotationResourceCollection.cs
- InkPresenter.cs
- AuthenticationService.cs
- AutomationPropertyInfo.cs
- CultureTableRecord.cs
- CallbackCorrelationInitializer.cs
- StyleSelector.cs
- ApplicationProxyInternal.cs
- FixedSOMPageConstructor.cs
- PrivilegedConfigurationManager.cs
- Ipv6Element.cs
- ListViewAutomationPeer.cs
- XmlSchemaGroup.cs
- ExpressionConverter.cs
- RawAppCommandInputReport.cs
- HttpFileCollection.cs
- MessageContractAttribute.cs
- ListDictionaryInternal.cs
- SQLInt64.cs
- NamespaceMapping.cs
- DataGridViewColumnCollection.cs
- RelatedCurrencyManager.cs
- TemplatePartAttribute.cs
- SQLInt16.cs
- XamlPoint3DCollectionSerializer.cs
- GridItemCollection.cs
- Image.cs
- SpeechUI.cs