Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / clr / src / BCL / System / Security / Permissions / IsolatedStorageFilePermission.cs / 1 / IsolatedStorageFilePermission.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== // // Purpose : This permission is used to controls/administer access to // IsolatedStorageFile // namespace System.Security.Permissions { using System.Globalization; [Serializable] [System.Runtime.InteropServices.ComVisible(true)] sealed public class IsolatedStorageFilePermission : IsolatedStoragePermission, IBuiltInPermission { public IsolatedStorageFilePermission(PermissionState state) : base(state) { } internal IsolatedStorageFilePermission(IsolatedStorageContainment UsageAllowed, long ExpirationDays, bool PermanentData) : base(UsageAllowed, ExpirationDays, PermanentData) { } //------------------------------------------------------ // // IPERMISSION IMPLEMENTATION // //----------------------------------------------------- public override IPermission Union(IPermission target) { if (target == null) { return this.Copy(); } else if (!VerifyType(target)) { throw new ArgumentException( String.Format(CultureInfo.CurrentCulture, Environment.GetResourceString("Argument_WrongType"), this.GetType().FullName) ); } IsolatedStorageFilePermission operand = (IsolatedStorageFilePermission)target; if (this.IsUnrestricted() || operand.IsUnrestricted()) { return new IsolatedStorageFilePermission( PermissionState.Unrestricted ); } else { IsolatedStorageFilePermission union; union = new IsolatedStorageFilePermission( PermissionState.None ); union.m_userQuota = max(m_userQuota,operand.m_userQuota); union.m_machineQuota = max(m_machineQuota,operand.m_machineQuota); union.m_expirationDays = max(m_expirationDays,operand.m_expirationDays); union.m_permanentData = m_permanentData || operand.m_permanentData; union.m_allowed = (IsolatedStorageContainment)max((long)m_allowed,(long)operand.m_allowed); return union; } } public override bool IsSubsetOf(IPermission target) { if (target == null) { return ((m_userQuota == 0) && (m_machineQuota == 0) && (m_expirationDays == 0) && (m_permanentData == false) && (m_allowed == IsolatedStorageContainment.None)); } try { IsolatedStorageFilePermission operand = (IsolatedStorageFilePermission)target; if (operand.IsUnrestricted()) return true; return ((operand.m_userQuota >= m_userQuota) && (operand.m_machineQuota >= m_machineQuota) && (operand.m_expirationDays >= m_expirationDays) && (operand.m_permanentData || !m_permanentData) && (operand.m_allowed >= m_allowed)); } catch (InvalidCastException) { throw new ArgumentException( String.Format(CultureInfo.CurrentCulture, Environment.GetResourceString("Argument_WrongType"), this.GetType().FullName) ); } } public override IPermission Intersect(IPermission target) { if (target == null) return null; else if (!VerifyType(target)) { throw new ArgumentException( String.Format(CultureInfo.CurrentCulture, Environment.GetResourceString("Argument_WrongType"), this.GetType().FullName) ); } IsolatedStorageFilePermission operand = (IsolatedStorageFilePermission)target; if(operand.IsUnrestricted()) return Copy(); else if(IsUnrestricted()) return target.Copy(); IsolatedStorageFilePermission intersection; intersection = new IsolatedStorageFilePermission( PermissionState.None ); intersection.m_userQuota = min(m_userQuota,operand.m_userQuota); intersection.m_machineQuota = min(m_machineQuota,operand.m_machineQuota); intersection.m_expirationDays = min(m_expirationDays,operand.m_expirationDays); intersection.m_permanentData = m_permanentData && operand.m_permanentData; intersection.m_allowed = (IsolatedStorageContainment)min((long)m_allowed,(long)operand.m_allowed); if ((intersection.m_userQuota == 0) && (intersection.m_machineQuota == 0) && (intersection.m_expirationDays == 0) && (intersection.m_permanentData == false) && (intersection.m_allowed == IsolatedStorageContainment.None)) return null; return intersection; } public override IPermission Copy() { IsolatedStorageFilePermission copy ; copy = new IsolatedStorageFilePermission(PermissionState.Unrestricted); if(!IsUnrestricted()){ copy.m_userQuota = m_userQuota; copy.m_machineQuota = m_machineQuota; copy.m_expirationDays = m_expirationDays; copy.m_permanentData = m_permanentData; copy.m_allowed = m_allowed; } return copy; } ///int IBuiltInPermission.GetTokenIndex() { return IsolatedStorageFilePermission.GetTokenIndex(); } internal static int GetTokenIndex() { return BuiltInPermissionIndex.IsolatedStorageFilePermissionIndex; } //----------------------------------------------------- // // IsolatedStoragePermission OVERRIDES // //----------------------------------------------------- [System.Runtime.InteropServices.ComVisible(false)] public override SecurityElement ToXml() { return base.ToXml( "System.Security.Permissions.IsolatedStorageFilePermission" ); } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- fixedPageContentExtractor.cs
- WizardForm.cs
- WebServiceErrorEvent.cs
- DoubleStorage.cs
- UriExt.cs
- DataGridItemEventArgs.cs
- Vector3DCollectionConverter.cs
- FileUpload.cs
- ColumnWidthChangedEvent.cs
- newinstructionaction.cs
- DATA_BLOB.cs
- EncoderParameter.cs
- ScrollChrome.cs
- Byte.cs
- ListBox.cs
- XmlAttribute.cs
- HwndHostAutomationPeer.cs
- MissingMethodException.cs
- QuadraticBezierSegment.cs
- NamespaceMapping.cs
- AttributeCollection.cs
- PrintDocument.cs
- ApplicationGesture.cs
- AliasExpr.cs
- RadioButtonRenderer.cs
- PreservationFileWriter.cs
- LocalBuilder.cs
- FamilyCollection.cs
- XmlQueryRuntime.cs
- OpCodes.cs
- ToolStripRendererSwitcher.cs
- AutoResizedEvent.cs
- RemotingService.cs
- NotificationContext.cs
- MDIWindowDialog.cs
- NamespaceEmitter.cs
- DeleteIndexBinder.cs
- ExpressionNode.cs
- AuthenticationServiceManager.cs
- WebServiceClientProxyGenerator.cs
- CqlBlock.cs
- MessageParameterAttribute.cs
- BitmapEffectState.cs
- RegistryPermission.cs
- FontEmbeddingManager.cs
- PropertyGridDesigner.cs
- ListenerConnectionDemuxer.cs
- ProtocolViolationException.cs
- EntityDataSourceState.cs
- Soap12ProtocolReflector.cs
- Point4DValueSerializer.cs
- FrameworkTextComposition.cs
- ConstructorNeedsTagAttribute.cs
- DragEventArgs.cs
- QueryComponents.cs
- EventLogPermissionEntry.cs
- PostBackOptions.cs
- CodeArrayIndexerExpression.cs
- SmtpNetworkElement.cs
- ToolStripSplitStackLayout.cs
- StreamUpdate.cs
- SetIterators.cs
- SafeLibraryHandle.cs
- RoleManagerSection.cs
- XmlWriterTraceListener.cs
- GradientStopCollection.cs
- UserPreferenceChangedEventArgs.cs
- QueueProcessor.cs
- InternalCache.cs
- TextSearch.cs
- Visual.cs
- InstanceHandleReference.cs
- TouchDevice.cs
- UnsafeNativeMethods.cs
- MetadataArtifactLoaderCompositeFile.cs
- TableRow.cs
- DependencyPropertyConverter.cs
- StateChangeEvent.cs
- CodeNamespaceCollection.cs
- MbpInfo.cs
- HttpHandlerActionCollection.cs
- EventSourceCreationData.cs
- HMACSHA384.cs
- ToolStripItemEventArgs.cs
- DragEventArgs.cs
- RectKeyFrameCollection.cs
- ContentElement.cs
- ListViewInsertionMark.cs
- PeerApplicationLaunchInfo.cs
- CreateUserErrorEventArgs.cs
- StringSource.cs
- FixedSOMTableCell.cs
- ToolStripLocationCancelEventArgs.cs
- BCryptNative.cs
- SByte.cs
- DataGridCellEditEndingEventArgs.cs
- sitestring.cs
- QilTernary.cs
- XmlDeclaration.cs
- MasterPageParser.cs