Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / UI / ViewStateException.cs / 1305376 / 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]
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\tReferer: {2}\r\n\tPath: {3}\r\n\tUser-Agent: {4}\r\n\tViewState: {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,
_referer,
_path,
_userAgent,
_persistedState);
_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);
}
}
}
// 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
- SecurityRuntime.cs
- ProfileProvider.cs
- WebPartMinimizeVerb.cs
- ReflectionTypeLoadException.cs
- RequestCache.cs
- XamlInterfaces.cs
- VisualStyleInformation.cs
- IdentityReference.cs
- BaseHashHelper.cs
- CommandEventArgs.cs
- WorkflowRuntimeServiceElement.cs
- DigitShape.cs
- RootBrowserWindow.cs
- Parser.cs
- DelegatingConfigHost.cs
- HtmlControlPersistable.cs
- SessionStateSection.cs
- ReturnType.cs
- DataBinder.cs
- XPathBinder.cs
- KnownBoxes.cs
- RSAProtectedConfigurationProvider.cs
- UnmanagedMemoryStreamWrapper.cs
- SerializableAuthorizationContext.cs
- ListDictionary.cs
- DataControlLinkButton.cs
- PasswordTextNavigator.cs
- Help.cs
- UnicodeEncoding.cs
- BaseParser.cs
- CurrencyManager.cs
- ChannelCredentials.cs
- BamlResourceContent.cs
- PersianCalendar.cs
- ObfuscateAssemblyAttribute.cs
- TableCell.cs
- SkipQueryOptionExpression.cs
- Encoder.cs
- EventProviderWriter.cs
- XmlDocumentSerializer.cs
- BulletDecorator.cs
- SqlDataSourceQuery.cs
- SoapEnumAttribute.cs
- complextypematerializer.cs
- XmlDocumentSerializer.cs
- SmiRequestExecutor.cs
- MergePropertyDescriptor.cs
- EncryptedKey.cs
- BuildProvider.cs
- DefaultExpressionVisitor.cs
- Vector3D.cs
- DataControlFieldCollection.cs
- PagerSettings.cs
- GeneralEndpointIdentity.cs
- AnnotationMap.cs
- CopyNodeSetAction.cs
- DataObjectAttribute.cs
- QilInvoke.cs
- BitmapImage.cs
- CounterCreationData.cs
- XmlJsonReader.cs
- OracleDataAdapter.cs
- CalendarAutomationPeer.cs
- ToolStripItemClickedEventArgs.cs
- GraphicsPath.cs
- ExpandButtonVisibilityConverter.cs
- CacheModeConverter.cs
- UnSafeCharBuffer.cs
- MeasureData.cs
- WebRequestModuleElementCollection.cs
- MasterPageBuildProvider.cs
- login.cs
- DES.cs
- XmlIlGenerator.cs
- DataGridColumnCollection.cs
- ProfileGroupSettingsCollection.cs
- FileSecurity.cs
- ValidationException.cs
- Popup.cs
- XslException.cs
- ArgumentException.cs
- keycontainerpermission.cs
- RelationshipDetailsRow.cs
- OSFeature.cs
- ListBoxItemWrapperAutomationPeer.cs
- SecurityDescriptor.cs
- UnmanagedMemoryStreamWrapper.cs
- ScriptModule.cs
- MSAAEventDispatcher.cs
- HttpCapabilitiesBase.cs
- Registry.cs
- ObjectDataSourceDisposingEventArgs.cs
- SafeRightsManagementHandle.cs
- HtmlEmptyTagControlBuilder.cs
- AnimationTimeline.cs
- InputLanguageManager.cs
- AdvancedBindingEditor.cs
- CryptoSession.cs
- StringInfo.cs
- PipelineComponent.cs